Javascript 如何在图像fadeIn和fadeOut上使用stop()正确防止事件堆叠?

Javascript 如何在图像fadeIn和fadeOut上使用stop()正确防止事件堆叠?,javascript,jquery,fadein,fadeout,Javascript,Jquery,Fadein,Fadeout,我正在开发一个程序,用户将鼠标悬停在一个图像上,然后创建一个悬停图像的克隆。当用户从悬停图像中删除光标时,克隆图像将淡出并被删除。我在fadeIn()和fadeOut()之前添加了stop(),以防止淡入淡出动画事件堆叠 问题在于,如果鼠标光标以非常快的速度多次进入和离开图像,则克隆图像的淡入动画仅部分完成,或者克隆图像根本没有完成 jsfiddle: 好的,我知道这不是你想要的,但我已经以一种我认为最有效的方式重新编写了你的javascript 请看这里 我添加了一些注释来解释 我觉得你的版本

我正在开发一个程序,用户将鼠标悬停在一个图像上,然后创建一个悬停图像的克隆。当用户从悬停图像中删除光标时,克隆图像将淡出并被删除。我在
fadeIn()
fadeOut()
之前添加了
stop()
,以防止淡入淡出动画事件堆叠

问题在于,如果鼠标光标以非常快的速度多次进入和离开图像,则克隆图像的淡入动画仅部分完成,或者克隆图像根本没有完成

jsfiddle:


好的,我知道这不是你想要的,但我已经以一种我认为最有效的方式重新编写了你的javascript

请看这里

我添加了一些注释来解释

我觉得你的版本有点重。创建克隆并追加每一个鼠标,然后每一个鼠标删除一次

我这样做是为了在页面加载时克隆图像,并将其隐藏。然后使用
hover()
函数,您只需根据需要将其淡入淡出即可

如果要保留代码,则只需将当前停止事件替换为:

stop(true, true)

希望这有帮助。

我同意,这是一种更舒适的方式。我知道我的代码效率不高。我只能用一种对我有意义的方式来编写代码:D你的示例和提示非常有用。