我有一个预加载器到我的站点,并且运行良好。它仅附加在主页上,但是,每当我返回主页时,预加载器都会再次出现。我希望发生这种情况,一旦网站(主页)已被缓存,则预加载器将不会出现。

Here is my site

这是我的JavaScript:

<script type="text/javascript">
 //<![CDATA[
 $(window).load(function() {
 $("#status").fadeOut();
 $("#preloader").delay(350).fadeOut("slow");
 })
 //]]>
 </script>

最佳答案

我提到了此链接:
http://www.w3schools.com/js/js_cookies.asp
您可以使用javascript函数来实现

演示:

<script type="text/javascript">
function getCookie(c_name)
{
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++)
  {
  x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
  y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
  x=x.replace(/^\s+|\s+$/g,"");
  if (x==c_name)
    {
    return unescape(y);
    }
  }
}

function setCookie(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}

 //<![CDATA[
 $(window).load(function() {

if(!getCookie("loaded")){


编辑

 //Show element only if the cookie is absent.
 $("#preloader").show();
 $("#status").fadeOut();
 $("#preloader").delay(350).fadeOut("slow");
//property name , value and no of expiration days
setCookie("loaded",true,365);
    }
else{
    $("#preloader").hide();
    $("#status").hide();
}

 })
 //]]>
 </script>


编辑:
您还可以通过设置preloader元素的display:none来初始化默认情况下隐藏的元素。然后通过javascript仅在不存在cookie的情况下显示该元素。请参阅我在代码中所做的编辑。

09-25 17:54