让fadeOut在加载时工作一次

时间:2014-09-29 20:41:30

标签: jquery fadeout

尝试将覆盖的div重叠为fadeout,以便在用户第一次访问该网站时显示我的博客。现在每次我回到主页时它都会加载。我如何修改下面的内容,使其仅在第一次加载页面时加载,而不是每次访问主页时都加载?

 <script>
  var flag=true;
   $(document).ready(function(){
      if(flag){
    setTimeout(function(){ $('#fadeout_image_div').fadeOut('slow') }, 2000);
    flag=false};
  //the else statement I'm not so sure about, I was trying to hide the div if the flag was set
  else
    $('#fadeout_image_div').css('display', 'none');
  });

从逻辑上讲,我认为这样可行,但似乎并没有这样做。我不认为国旗被认出来了。每次访问主页时它仍然会淡出。 jQuery仍然相对较新,所以任何帮助都非常感谢。

3 个答案:

答案 0 :(得分:2)

每次加载页面时都会重置JavaScript变量。我能想到的唯一选择是将值存储在cookie中:http://plugins.jquery.com/cookie/

答案 1 :(得分:1)

使用cookies存储您的旗帜 How do I set/unset cookie with jQuery? 1-得到你的旗帜:$ .cookie(&#39; myFlag&#39;) 2-如果标志未定义激活淡出效果然后设置你的标志$ .cookie(&#39; myFlag&#39;,true)

答案 2 :(得分:1)

尝试在document ready使用sessionStoragelocalStorage来检查之前是否访问过。

像:

if (localStorage.popUpShown != 'true') {
    localStorage.popUpShown = 'true';
    alert("ok");
    setTimeout(function () {
        $('#fadeout_image_div').fadeOut('slow');
    }, 2000);
} else {
    alert('already shown the popup');
}