首页 > 语言 > JavaScript > 正文

jQuery中animate动画第二次点击事件没反应

2024-05-06 16:19:33
字体:
来源:转载
供稿:网友
这篇文章主要介绍了jQuery中animate动画第二次点击事件没反应的解决方法,非常的实用,有需要的小伙伴可以参考下
 

用animate做点击翻页动画时发现第二次点击事件动画没反应,而第一次点击有动画效果,代码如下:

 

复制代码代码如下:

$(".page").stop().animate({top:“-300px”}, 800, 'easeInOutExpo');

 

第二次点击事件动画没反应的原因:top是page元素顶部相与其父元素顶部的距离,第一次点击后,page元素顶部已经移动到距其父元素顶部-300px的位置,第二次点击时的并不是page在移动后的位置继续t移动-300px,而是当前的位置据其父元素顶部-300px。显然第一次已经移动到top:-300px的位置,第二次的top:-300px移动距离为0,所以没反应。
解决方法:

 

复制代码代码如下:

$(".page").stop().animate({top:“-=300px”}, 800, 'easeInOutExpo');

 

top:“-=300px”,这样第二次点击时会在第一次点击后的位置上继续移动-300px。

如果动画移动的距离是变量,就不能用“-=变量名”来写了:
 

  1. function down() { 
  2. var page_h=$(".page").height(); //687 
  3. var page_top=parseInt($(".page").css("top")); //0 
  4. var move=wrap_top+page_h; 
  5. $(".page").stop().animate({top:move}, 800, 'easeInOutExpo'); 
  6. }; 
?
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表