我构建了一个jQuery组件,由一组3个文本框组成,与图形背景div相对应。将每个盒子悬停在与盒子相关的相应背景图形上。动画使用fadeIn / fadeOut回调完成(fadeIn在fadeOut完成后发生)。
我遇到的问题是鼠标从#1框快速传递到框#3,横跨框#2,不必要地参与与框#2相关的图像交换,并且因为渐变被设置为平滑有时需要很长时间才能完成所有图像交换。当然,我是在外行人(不合格的网络用户)中说的 - jQuery不知道什么是“不必要的”。我的真正含义是询问是否有一种行动聪明的方法 - 你的名字: - 对事件进行排队,也许在新出现之前冲洗那些没有按时完成的事件,或者可能是停止传播,或者是 - 不
我对事件没有多少工作,所以请原谅我的一般性问题。如果确实有帮助,我可以提供一些示例代码。
感谢。
答案 0 :(得分:0)
如果您提供了HTML和javascript,我们可以提供更具体的建议,但您可能需要在开始任何新动画之前添加.stop(true)
。这将停止任何先前的动画并将其从动画队列中删除,以便下一个动画可以立即开始。
例如,而不是:
$("whatever").fadeIn();
你会这样做:
$("whatever").stop(true).fadeIn();
如果没有.stop(true)
,如果下一个动画在前一个动画完成之前就开始播放,动画会堆积在队列中,这很容易就像悬停触发的动画一样。
有关.stop()
的详细信息,请参阅jquery doc。