1

我想让一个 jquery 动画在每个会话中只运行一次 cookie。我已经想出了如何使用 Klaus Hartl 的 cookie 插件来做到这一点,但是,当页面被第二次调用时,元素会闪烁。我的印象是 $.fx.off 应该让 jquery 跳转到动画的结束状态,但是,元素短暂闪烁,就像不是只是跳转到结束状态,它只是通过动画播放真的很快。当浏览器退出时,cookie 会退出,然后动画会再次播放——这就是我想要发生的事情。我只希望动画在每个会话中播放一次。我可以在网上找到一些关于如何使 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>

任何想法都会很棒!谢谢!

4

1 回答 1

2
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();
  }
 });

为什么不这样?

于 2011-01-31T21:52:18.183 回答