Вопрос

Я хотел бы сделать анимацию 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();
  }
 });

Почему бы это не нравится?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top