Проблема с отменой анимации jquery с помощью cookie
-
27-10-2019 - |
Вопрос
Я хотел бы сделать анимацию jQuery только один раз за сеанс с печеньем. Я как бы понял, как это сделать с помощью плагина Cookie Klaus Hartl's 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>
Любые мысли были бы великолепны! Спасибо!
Решение
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();
}
});
Почему бы это не нравится?