如何继续设置显示/隐藏侧边栏

时间:2012-01-31 17:30:00

标签: javascript

我制作了一个侧边栏,它是为了显示所有时间,只有点击它才会隐藏。但是在隐藏了这个之后,如果我刷新页面,它会再次显示出来。所以我想保留设置,所以如果用户隐藏它,它将不会出现,直到他按下显示按钮无关页面刷新或他转到另一页。

(例如像facebook右侧聊天栏一样隐藏或显示无关紧要页面刷新或其他任何内容)

我想JS上的一些变化会完成这项工作,但我不确定&不是编码员所以帮助我做。

我使用的JS代码:

<script language=javascript type='text/javascript'>
function hideDiv() {
    if (document.getElementById) { // DOM3 = IE5, NS6
        document.getElementById('hideShow').style.visibility = 'hidden';
    } else {
        if (document.layers) { // Netscape 4
            document.hideShow.visibility = 'hidden';
        } else { // IE 4
            document.all.hideShow.style.visibility = 'hidden';
        }
    }
}

function showDiv() {
    if (document.getElementById) { // DOM3 = IE5, NS6
        document.getElementById('hideShow').style.visibility = 'visible';
    } else {
        if (document.layers) { // Netscape 4
            document.hideShow.visibility = 'visible';
        } else { // IE 4
            document.all.hideShow.style.visibility = 'visible';
        }
    }
}
</script>

HTML和CSS

<div id="hideShow" ..etc>
    My content
</div>

这就是调用JavaScript来隐藏它:

<a href="javascript:hideDiv()">Hide Div</a>

这表明它:

<a href="javascript:showDiv()">show Div</a> 

3 个答案:

答案 0 :(得分:2)

像这样的东西!在这里你有一个读取cookie的功能,因为设置一个cookie很容易,但读得不多。

readCookie = function (name) {
        var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for (var i = 0; i < ca.length; i++) {
            var c = ca[i];
            while (c.charAt(0) == ' ') c = c.substring(1, c.length);
            if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
        }
        return "es";
    }

function hideDiv() {
  if (document.getElementById) { // DOM3 = IE5, NS6
    document.getElementById('hideShow').style.visibility = 'hidden';
  }
  else {
   if (document.layers) { // Netscape 4
     document.hideShow.visibility = 'hidden';
   }
   else { // IE 4
    document.all.hideShow.style.visibility = 'hidden';
   }
  }
 document.cookie = 'show=false';
}

function showDiv() {
if (document.getElementById) { // DOM3 = IE5, NS6
document.getElementById('hideShow').style.visibility = 'visible';
}
else {
if (document.layers) { // Netscape 4
document.hideShow.visibility = 'visible';
}
else { // IE 4
document.all.hideShow.style.visibility = 'visible';
}
}
document.cookie = 'show=true';
}

if(readCookie('show') == "true"){
 showDiv();
}
else {
 hideDiv();
}
祝你好运

答案 1 :(得分:1)

你需要一个javascript类来读写cookie。这样,当用户与cookie交互时,您可以在cookie中编写侧边栏的状态。当页面加载时,您从cookie中读取状态,并相应地设置可见性。

答案 2 :(得分:0)

您需要将条形图的可见性状态保存在某处的变量中。由于您使用(我假设)只有JS,您可能需要访问用户的cookie。

如何在JS中设置Cookie:http://www.javascripter.net/faq/settinga.htm 如何在JS中阅读Cookie:http://www.javascripter.net/faq/readinga.htm