我有一个预加载器到我的站点,并且运行良好。它仅附加在主页上,但是,每当我返回主页时,预加载器都会再次出现。我希望发生这种情况,一旦网站(主页)已被缓存,则预加载器将不会出现。
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的情况下显示该元素。请参阅我在代码中所做的编辑。