2016-01-28 45 views
0

我提到this thread得到一个透明的div来显示网站上的内容的顶部,并在其上点击时,它消失了......叠加透明的div一次点击

然而,当有人访问内页该网站,他们点击主页按钮,他们再次显示透明的div ... 有没有办法让div只出现一次,关闭它之后不再出现?

+5

[Cookies](https://stackoverflow.com/questions/4825683/how-do-i-create-and-read-a-value-from-cookie)或[localStorage](https:// stackoverflow.com/questions/2010892/storing-objects-in-html5-localstorage) – Hatchet

回答

0

最好的办法是设置一个cookie。通过这种方式,您可以永久隐藏它,或在指定的时间内隐藏它。

document.cookie = "transparentdivShow = false"; 

现在你可以检查,如果这个cookie存在,如果是这样,不显示在div:

if(document.cookie.indexOf("transparentDivShow") >= 0) { 
    return true; // Don't show it 
} else { 
    return false; // Show the div 
} 
+0

我从来没有设置cookie之前...我的div id是#overlay ...我将如何实现您提供的示例代码? document.cookie =“#overlayShow = false”; (document.cookie.indexOf(“#overlayShow”)> = 0){ return true; //不显示 } else else { return false; //显示div } – Cherubrock74

0

正如上面提到的海报,你可以使用一个Cookie。或者,您可以使用HTML5本地存储!本地存储允许数据在本地存储在用户的浏览器中。

在这种情况下,您可以拥有类似clickcounter的东西来计算clickcounter是否大于1.如果它大于1,则为div赋予一个隐藏属性或仅删除它。

if (sessionStorage.clickcounter) { 
<div hidden> You can't see me. I'm invisible. </div> 
} else { 
sessionStorage.clickcounter = 1; 
<div visible> Hi! I'm not transparent. </div> 
} 

我希望这可以帮助。这里有一个包含更多信息的页面! http://www.w3schools.com/html/html5_webstorage.asp

+0

非常感谢您的回复!你认为我可以使用cookies和html5吗?如果有人禁用了cookie,html5仍然可以完成这项工作...... – Cherubrock74

+0

如果您没有启用cookie,您可以使用本地存储作为回退。在那种情况下,你可以。之所以选择本地存储以上的Cookie,是因为Cookie可能有失效日期,因此您可以在定义的时间后重新显示该消息。 –

+0

的确如此。 Cookie过期时间可能非常有用,贾斯珀说得对。 JavaScript使得设置和读取cookies非常容易,所以它应该很麻烦。 http://www.w3schools.com/js/js_cookies.asp 是的,你可以使用html5和cookie与html5作为后备。这将工作得很好。 – crepuscularCoder