クッキーでjQueryアニメーションをキャンセルする際の問題
-
27-10-2019 - |
質問
jQueryアニメーションをCookieでセッションごとに1回だけ実行したいと思います。 Klaus HartlのCookieプラグインでこれを行う方法を考え出しましたが、ページが2回目と呼ばれると、要素が点滅します。 $ .fx.offはjqueryをアニメーションの終了状態にジャンプさせることになっているという印象を受けていますが、要素が一時的にフラッシュするのは、それはただ終了状態にジャンプするだけでなく、アニメーションを通して再生するだけです本当にすぐに。ブラウザが終了するとクッキーが脱落し、アニメーションが再び再生されます。それが私が起こりたいことです。アニメーションをセッションごとに一度再生したいだけです。 Cookie Switch CSS状態を作成する方法について、オンラインでいくつかの優れたチュートリアルを見つけることができますが、jqueryアニメーションが実行されないようにして、最終状態が表示されるようにするだけのものが必要です。
これが私のテストページです:
http://ianmartinphotography.com/test-site/index-cookies-04.html
これが私のコードです:
<script type="text/javascript">
var welcome=$.cookie('welcome'); if(welcome == 'ran') {$.fx.off = !$.fx.off;};
</script>
<!--slider-->
<script type="text/javascript">
$(window).load(function(){$(".imwpj")
.animate({"top": "+=200px"}, 0)
.fadeIn(2000).delay(200).animate({"top": "+=295px"}, 1100, function() {
$('#sub-fader').fadeIn(1500); });
$.cookie('welcome', 'ran');
});
</script>
どんな考えも素晴らしいでしょう!ありがとう!
解決
var welcome=$.cookie('welcome');
$(window).load(function(){
if(welcome != 'ran') {
$(".imwpj")
.animate({"top": "+=200px"}, 0) // this is not necessary, you can use css("top", "200px")
.fadeIn(2000).delay(200).animate({"top": "+=295px"}, 1100, function() {
$('#sub-fader').fadeIn(1500); });
$.cookie('welcome', 'ran');
} else {
$(".imwpj").css("top", "495px");
$("#sub-fader").css("display", "block"); //or .show();
}
});
なぜこれが好きではないのですか?
所属していません StackOverflow