remember state of folds
This commit is contained in:
58
index.html
58
index.html
@@ -104,7 +104,7 @@ function make_head(c,index="") {
|
|||||||
var name=c.substring(1).trim();
|
var name=c.substring(1).trim();
|
||||||
var head=c.replace(/ /g," ");
|
var head=c.replace(/ /g," ");
|
||||||
var id=name.replace(/ /g,"")+"_"+index;
|
var id=name.replace(/ /g,"")+"_"+index;
|
||||||
return '<a name="'+name+'" id="anchor_'+id+'" onclick="fold_content(\''+id+'\')">'+
|
return '<a name="'+name+'" id="anchor_'+id+'" onclick="fold_toggle(\''+id+'\')">'+
|
||||||
'<div class=head align=center id="head_'+id+'">'+head+'</div></a>'+
|
'<div class=head align=center id="head_'+id+'">'+head+'</div></a>'+
|
||||||
'<hr WIDTH="100%" SIZE=3 NOSHADE>';
|
'<hr WIDTH="100%" SIZE=3 NOSHADE>';
|
||||||
}
|
}
|
||||||
@@ -354,29 +354,79 @@ function filter_cookies(cookies,name) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null
|
return null;
|
||||||
}
|
}
|
||||||
function fold_content(name) {
|
function fold_toggle(name,save_state = true) {
|
||||||
if (!narrow_window()) { return }
|
if (!narrow_window()) { return }
|
||||||
if (!config.foldCategories) { return }
|
if (!config.foldCategories) { return }
|
||||||
var title = document.getElementById("head_"+name);
|
var title = document.getElementById("head_"+name);
|
||||||
var el = document.getElementById("content_"+name);
|
var el = document.getElementById("content_"+name);
|
||||||
el.hidden = ! el.hidden;
|
el.hidden = ! el.hidden;
|
||||||
title.classList.toggle("fold_plus");
|
title.classList.toggle("fold_plus");
|
||||||
|
if (save_state) {
|
||||||
|
set_cookie("fold",fold_get_state());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function fold_set(name,value) {
|
||||||
|
if (!narrow_window()) { return }
|
||||||
|
if (!config.foldCategories) { return }
|
||||||
|
var title = document.getElementById("head_"+name);
|
||||||
|
var el = document.getElementById("content_"+name);
|
||||||
|
el.hidden = value;
|
||||||
|
if (value) {
|
||||||
|
title.classList.add("fold_plus");
|
||||||
|
} else {
|
||||||
|
title.classList.remove("fold_plus");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
function fold_initial() {
|
function fold_initial() {
|
||||||
if (!narrow_window()) { return }
|
if (!narrow_window()) { return }
|
||||||
if (!config.foldCategories) { return }
|
if (!config.foldCategories) { return }
|
||||||
|
var state = get_cookie("fold");
|
||||||
|
if (state !== null) {
|
||||||
|
fold_set_state(state);
|
||||||
|
return;
|
||||||
|
}
|
||||||
var slides = document.getElementsByClassName("head");
|
var slides = document.getElementsByClassName("head");
|
||||||
for(var i = 0; i < slides.length; i++) {
|
for(var i = 0; i < slides.length; i++) {
|
||||||
var el = slides.item(i);
|
var el = slides.item(i);
|
||||||
var rect = el.getBoundingClientRect();
|
var rect = el.getBoundingClientRect();
|
||||||
if (window.innerHeight*1.5 < rect.top) {
|
if (window.innerHeight*1.5 < rect.top) {
|
||||||
var name = el.id.replace("head_","");
|
var name = el.id.replace("head_","");
|
||||||
fold_content(name);
|
fold_toggle(name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
function fold_get_state() {
|
||||||
|
var slides = document.getElementsByClassName("head");
|
||||||
|
var state = "";
|
||||||
|
for(var i = 0; i < slides.length; i++) {
|
||||||
|
var title = slides.item(i);
|
||||||
|
var name = title.id.replace("head_","");
|
||||||
|
var el = document.getElementById("content_"+name);
|
||||||
|
if (el.hidden) {
|
||||||
|
state += '-';
|
||||||
|
} else {
|
||||||
|
state += '+';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
function fold_set_state(state) {
|
||||||
|
var slides = document.getElementsByClassName("head");
|
||||||
|
for(var i = 0; i < slides.length; i++) {
|
||||||
|
var title = slides.item(i);
|
||||||
|
var name = title.id.replace("head_","");
|
||||||
|
if (state[i] == '-') {
|
||||||
|
fold_set(name, true);
|
||||||
|
}
|
||||||
|
if (state[i] == '+') {
|
||||||
|
fold_set(name, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
function set_cookie(name,value) {
|
function set_cookie(name,value) {
|
||||||
// Save cookies for 2 hours
|
// Save cookies for 2 hours
|
||||||
document.cookie = name + "=" + value.toString() + "&" + window.location.pathname +
|
document.cookie = name + "=" + value.toString() + "&" + window.location.pathname +
|
||||||
|
|||||||
Reference in New Issue
Block a user