0

我有一个使用 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
}

工作示例: https ://codepen.io/JonnyPS/pen/pmQbaQ?editors=0010

4

0 回答 0