我想在每个会话中使用cookie运行一次jquery动画。我有点想通过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>
任何想法都会很棒!谢谢!
答案 0 :(得分: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();
}
});
为什么不喜欢这个?