2016-06-11 155 views
1

我在我的HTML頁面上有加載動畫,它工作得很好。問題是每當頁面刷新時,加載動畫再次出現,我想限制它只有第一次頁面加載。僅在第一次使用Cookies加載頁面時才顯示加載動畫?

我正在使用cookie來解決問題,我從一個stackoverflow問題引用: 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

回答

0

更改您的代碼

$(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 –

相關問題