2016-11-09 8 views
1

私は開発サイトhereを持っており、イントロに満足しています。しかし、ブラウザのセッションを一度実行してから、セッションの残りの部分については最終状態を維持するためにこのスクリプトが必要です。これは可能ですか、何かを並べ替えるべきですか?私はこれにはかなり新しく、少しの助けが必要です!私のイントロスクリプトは以下の通りです:ブラウザセッションごとにスクリプトを1回実行しますが、最後にフリーズスクリプト

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

クッキーを設定する... –

+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

あなたはクッキー、またはのlocalStorageを使用することができます。

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

私がこれを書いている間、サムが言ったように...

+0

彼らはかなり素晴らしいです! MozillaのSessionStorageページへの[link](https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage)です。 – Sam07

+0

ありがとうございました、私はSessionStorageを少し見てきましたが、イントロを構成する最善の方法を理解できません。なぜなら、イントロページは**私のサイトのヘッダーに**アニメーション化されるからです。だから、私はスクリプトが最終状態(ヘッダー)で「フリーズ」する必要がありますが、意味がありますか?明らかに、すべての内側のページについて、私は固定ヘッダーを作成できますが、ホームページでは作成できません。 –

+0

ページを訪問していない人のためにそのままスクリプトを残すことができますが、それらがSessionStorageフラグを持っていればまっすぐに終わりの状態に。例: '訪れた場合、トリガーフリーズします。訪問していない場合は、通常のスクリプトを起動する; – Sam07

関連する問題