我有一个使用 JQuery 的相对简单的动画。
它本质上是一个盒子,其中一个将不透明度从 1 设置为 0,然后再返回。当进入或离开任何框时,我想在 mouseenter 上暂停动画,并在 mouseleave 上重新启动动画。我还更改了 mouseenter 上所有框的不透明度,并将它们更改回 mouseleave 上的原始不透明度。
所有这些都按我的意愿工作,我的问题是:
当我快速将鼠标悬停在不同的框上时,似乎我移动得太快以至于动画的不同状态无法跟上,这反过来又会导致不透明度无法恢复到原始状态的错误效果。
如何避免这些错误?我知道逻辑工作正常,这似乎是一个性能问题。
Mouseenter 和 mouseleave 逻辑:
$(".box").mouseenter(function() {
$(".box").stop(true, false) // stop animation and stop queued animation
}
$(".box").mouseleave(function() {
anim() // call anim function to restart animation
}