仅在第一次使用Cookies加载页面时才显示加载动画?

问题描述:

我在我的HTML页面上有加载动画,它工作得很好。问题是每当页面刷新时,加载动画再次出现,我想限制它只有第一次页面加载。仅在第一次使用Cookies加载页面时才显示加载动画?

我正在使用cookie来解决问题,我从一个*问题引用: load an ad (div) just once on first load。我使用的是完全相同的代码,只是替换了我的ID。

$(document).ready(function() { 
if (!readCookie("adSeen")) { 
    $("#loading").fadeOut("slow"); 
    createCookie("adSeen", "1", 1000); 
}}); 

其余的代码是相同的。我的cookies已启用,但不起作用。帮我解决它。

这里是我的代码:https://jsfiddle.net/mytest_jsfiddle/ojo2mosd/5/

+1

您是否定义了'readCookie()'和'createCookie()'? – Barmar

+0

它适用于我这里:https://jsfiddle.net/barmar/3426k3sn/ – Barmar

+0

你有隐藏在CSS中的'#loading'图像吗? – Barmar

更改您的代码

$(document).ready(function() { 
    if (!readCookie("adSeen")) { 
    $("#loading").fadeIn("slow"); 
    createCookie("adSeen", "1", 1000); 
} 
    }); 

    function createCookie(name, value, days) { 
     if (days) { 
      var date = new Date(); 
      date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 
      var expires = "; expires=" + date.toGMTString(); 
     } else var expires = ""; 
     document.cookie = name + "=" + value + expires + "; path=/"; 
    } 

    function readCookie(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 null; 
    } 

参考,请参考下面的小提琴:

https://jsfiddle.net/aman_chhabra/fguq4hnd/1/

希望有所帮助。

+0

我已经更新小提琴。它对我的淡出效果也很好。请确保您目前没有在您的浏览器中拥有cookie,这个小提琴至少可以工作一次。 或者,如果cookies一直在淡出,请检查是否允许Cookie。 –

+0

我已经尝试了一切,但它仍然不适合我。也许我仍然在做错事。选中此项:https://jsfiddle.net/mytest_jsfiddle/ojo2mosd/5/。我已经设定了一些时间,但现在即使它没有消失。我是JS的新手。 –

+0

即使你的小提琴为我工作得很好。只是为了更加确定。你可以尝试在隐身窗口中,你可以打开它使用 Ctrl + Shift + P - 对于火狐 ctrl + shift + N-对于Chrome –