jQuery animate 参数仅在添加 0 时有效?

Posted

技术标签:

【中文标题】jQuery animate 参数仅在添加 0 时有效?【英文标题】:jQuery animate parameter only works when adding 0? 【发布时间】:2013-08-07 04:48:52 【问题描述】:

以下是我在 swiperight 事件中编写的代码(它的作用就像向右滑动它会更改 div 中的图像)

$("#divimglstdetails").animate( marginRight: 280 ,0,100).animate( marginRight: 0 , 100);
      );

我很想知道animate( marginRight: 280 ,0,100) 中的 0 是什么意思..我猜 100 是 ms 中的持续时间..这里我的代码向右滑动在向右滑动时添加 0 时效果很好,它会闪烁并改变图片..

【问题讨论】:

我认为 0 被用作持续时间,而 100 被忽略。您应该使用 animate 的回调函数,因为这里的两个 animate 似乎都是一起播放的。您应该提供一个 jsfiddle 来重现您的问题。通过将第一个动画更改为 css() 进行测试,看看它是否具有相同的行为 但如果我一开始使用 100 而不是 0,图像转换就会像闪烁一样发生...... 是的,因为两个动画是同时播放的。 Animate 使用了一些延迟/超时,使其像异步一样工作,这就是为什么你应该使用 first animate 的回调函数 【参考方案1】:

如果您希望在第一个动画之后发生第二个动画,则需要将其作为回调函数。另外,第一个数字应该是动画时间,然后你需要缓动。例如

$("#divimglstdetails").animate(marginRight: 280,1000,'swing',function()
  $(this).animate(marginRight: 0,1000,'swing');
);

【讨论】:

使用 1000 作为延迟将在 OP 显示他在调试目的中使用 100 看不到的内容,+1 是的,当很难看到过程是什么时,最好放慢动画速度。

以上是关于jQuery animate 参数仅在添加 0 时有效?的主要内容,如果未能解决你的问题,请参考以下文章

jquery animate bug,仅在谷歌浏览器中

几秒后,Jquery动画()响应非常缓慢

jQuery.animate() 似乎将持续时间参数作为延迟 [重复]

jquery的animate动画的回调函数怎么带参数?

在jQuery中添加音频暂停前的延迟

jQuery Animate 图像抽动