Проблема с отменой анимации jquery с cookie - PullRequest
1 голос
/ 01 февраля 2011

Я бы хотел, чтобы анимация 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 Ответ

2 голосов
/ 01 февраля 2011
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();
  }
 });

почему бы не так?

...