2016-11-09 110 views
1

我有一个网站正在开发here,我很满意介绍。但是,我需要此脚本在浏览器会话中运行一次,然后在会话的其余部分保持其最终状态。这是可能的,还是我应该重新安排一些事情。我很新,需要一些帮助!我的介绍下面的脚本是:每个浏览器会话运行脚本一次,但冻结脚本末尾

var words = ['websites', 'animation', 'branding', 'illustration']; 
 
var i = 0; 
 
var final = "thirdrail"; 
 
var splash = setInterval(function() { 
 

 
    $("#word").hide().html(words[i++]).fadeIn(500); 
 
    if (i == words.length + 1) { 
 
    $("#word").html(final); 
 
    clearInterval(splash); 
 
    var time = setTimeout(function() { 
 
     $(".overlay").addClass("level"); 
 
     $("#word").addClass("before"); 
 
     $(".logo").addClass("final"); 
 
     $("#static").html('<img src="symbol.svg"/>'); 
 
     $("nav").css('right', '-20px'); 
 
     $(".icon").css('right', '5%'); 
 

 
    }, 2000); 
 
    } 
 

 
}, 1000);

+0

设置Cookie ... –

+1

您可能会查看HTML5的SessionStorage,或者如果您过早过期,LocalStorage。您可以在其中任何一个中设置一个标志,并在页面加载时检查它。如果它有标志,请跳过介绍。 – Sam07

回答

1

完整的示例,如果你需要它

var final = "thirdrail"; 
 

 
function startSplash() { 
 
\t var words = ['websites', 'animation', 'branding', 'illustration']; 
 
\t var i = 0; 
 
\t var splash = setInterval(function() { 
 

 
\t \t $("#word").hide().html(words[i++]).fadeIn(500); 
 
\t \t if (i == words.length + 1) { 
 
\t \t \t $("#word").html(final); 
 
\t \t \t clearInterval(splash); 
 
\t \t \t var time = setTimeout(function() { 
 
\t \t \t \t endSplash(); 
 
\t \t \t \t localStorage.setItem("splashed", true); 
 
\t \t \t }, 2000); 
 
\t \t } 
 
\t }, 1000); 
 
} 
 

 
function endSplash() { 
 
\t $("#word").html(final); 
 
\t $(".overlay").addClass("level"); 
 
\t $("#word").addClass("before"); 
 
\t $(".logo").addClass("final"); 
 
\t $("#static").html('<img src="symbol.svg"/>'); 
 
\t $("nav").css('right', '-20px'); 
 
\t $(".icon").css('right', '5%'); 
 
} 
 

 
if(!sessionStorage.getItem("splashed")){ 
 
\t startSplash(); 
 
} else { 
 
\t endSplash(); 
 
}

+0

完美...谢谢 –

+0

一个简短的问题@ br3t - 'endSplash'函数不包括在'startSplash'中定义的数组......''final'变量不能被访问。在'endSplash'函数中创建另一个'final'变量是否可以? –

+0

我已经做了一些修改,试一试。 – br3t

0

你可以使用cookie,或者localStorage的:

if(localStorage.getItem("intro"){ 
//go to normal page 
}else{ 
localStorage.setItem("intro",true); 
//show intro 
} 

像萨姆说,虽然我写了这...

+0

他们非常棒!这是Mozilla的SessionStorage页面[链接](https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage)。 – Sam07

+0

谢谢你们,我确实看了一下SessionStorage,但我无法弄清楚介绍结构的最佳方法。因为,介绍页将**动画化为**我网站的标题。所以,我需要脚本在其最终状态(标题)中“冻结”,这是否有意义?显然,对于所有内部页面,我可以创建一个固定标题,但不能与主页... –

+0

您可能会将脚本保留为尚未访问该页面的人,但会触发另一个脚本如果它们具有SessionStorage标志,则直接到结束状态。例如:“如果访问过,会被冻结;如果没有访问,触发正常脚本;' – Sam07

相关问题