Проблема с отменой анимации jquery с cookie
Я бы хотел, чтобы анимация jquery запускалась только один раз за сеанс с cookie. Я как-то разобрался, как это сделать с помощью плагина cookie-файла Клауса Хартла, но, когда страница вызывается во второй раз, элементы мигают. У меня сложилось впечатление, что $.fx.off должен заставить jquery перейти в конечное состояние анимации, но элементы кратковременно мигают, это похоже на то, что вместо простого перехода в конечное состояние он просто воспроизводит анимацию очень быстро Файл cookie исчезнет, когда браузер закроется, а затем анимация снова запустится - вот чего я хочу. Я просто хочу, чтобы анимация воспроизводилась один раз за сеанс. Я могу найти в Интернете несколько хороших учебных пособий о том, как заставить куки переключать состояния 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>
Любые мысли были бы великолепны! Спасибо!
1 ответ
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();
}
});
почему не так?