我应该在 jQuery 中再次为元素设置动画之前停止动画吗

发布于 2024-09-27 00:44:37 字数 399 浏览 0 评论 0原文

在再次为元素设置动画之前是否有必要停止动画?例如,我将元素的大小从 [200, 200] 调整为 [800,800]。在动画中间,我想将同一元素的大小调整为 [600,600] 而不是 [800,800]。

  • 在同一元素上使用 .animate() 函数之前,我是否应该使用 .stop() 停止动画?
  • 如果我不停止当前动画,jQuery 会在执行第二个动画之前完成第一个动画吗?

当我调用animate()时,jQuery会自动将overflow:hidden;添加到元素样式中,并在动画完成时重置该值。但是,如果我在动画结束之前调用 .stop(),该属性不会重置为其原始值。

Is it necessary to stop an animation, before animating the element again? For example, I am resizing an element from size [200, 200] to [800,800]. Half way between the animation, I want to resize the same element to [600,600] instead of [800,800].

  • Should I use .stop() to stop the animation before using the .animate() function on the same element?
  • If I do not stop the current animation, will jQuery complete the first animation before executing the second one?

When I call animate(), jQuery automatically adds overflow:hidden; to the element style, and resets the value when the animation gets completed. But if I call .stop() before the animation is over, the property is not reset to its original value.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

雪若未夕 2024-10-04 00:44:37

是否有必要完全取决于您的要求。是的,如果你不停止之前的动画,它们就会排队。在您的示例中,您的元素将完全放大到 800x800,然后动画到较小的尺寸 600x600。
听起来好像您想在对新动画进行排队之前停止上一个动画并清除 fx 队列 ($element.stop(true);)。

您最有可能想要清除动画队列的另一个示例是当您的幻灯片切换器通过用户单击同一按钮来打开/关闭时。当用户快速单击按钮时,您不希望滑块完全打开/关闭十几次。相反,您可以在单击时清除队列,然后只执行一个打开/关闭动画。

Whether it's necessary entirely depends on your requirements. Yes, if you don't stop the previous animation, they will be queued. In your example, your element would be fully enlarged to 800x800, then animated to the smaller size of 600x600.
It sounds as if you want to stop the previous animation, and clear the fx-queue, before you queue your new animation ($element.stop(true);).

Another example where you most likely would want to clear the animation queue is when you have slide togglers that open/close through user clicks on the same button. When a user rapid-clicks on the button, you don't want your slider to open/close entirely a dozen times. Instead, you would clear the queue on click and then just do one open/close animation.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文