0

我构建了一个 jQuery 组件,它由一组 3 个文本框组成,以图形背景 div 布局。悬停在每个盒子上会交换与盒子相关的相应背景图形。使用fadeIn/fadeOut 回调完成动画(fadeIn 在fadeOut 完成后发生)。

我遇到的问题是鼠标从框 #1 快速通过框 #3,穿过框 #2,不必要地进行与框 #2 相关的图像交换,并且由于淡入淡出设置为平滑,有时它在完成所有图像交换之前需要很长时间。当然,我说的是外行(不合格的网络用户)的话——jQuery 不知道什么是“不必要的”。我真正的意思是问是否有一种方法可以聪明地行动,并且 - 你的名字: - 将事件排队,也许在新的出现之前刷新那些没有按时完成的事件,或者可能是 stopPropagation,或者什么 -不是。

我对事件的工作不多,所以请原谅我的一般性问题。如果真的有帮助,我可以提供一些示例代码。

谢谢。

4

1 回答 1

0

如果您提供了 HTML 和 javascript,我们可以提供更具体的建议,但您可能需要.stop(true)在开始任何新动画之前添加。这将停止任何以前的动画并将它们从动画队列中删除,以便下一个动画可以立即开始。

例如,而不是这个:

$("whatever").fadeIn();

你会这样做:

$("whatever").stop(true).fadeIn();

如果没有.stop(true),如果下一个在前一个完成之前开始,则动画可能会堆积在队列中,这在悬停触发的动画中很容易出现这种情况。

有关. _ _.stop()

于 2012-04-17T00:54:42.733 回答