javascript - jQuery - 快速移动鼠标时 Mouseleave 不触发

标签 javascript jquery

类似问题有几个答案,但没有一个对我有用,同时仍能给我想要的效果,或者没有一个是我理解的。所以任何帮助或指导都会很棒

这是一个 fiddle : http://jsfiddle.net/csoh1vzb/

本质上,当您快速将鼠标悬停在单元格上时,mouseleave 函数不会运行,而我仍处于事件状态。

我已经“修复了一半”,但它仍然不是我想要的那样。

将此添加到 mouseenter 可解决下一次悬停时的问题:

$('.cell .hover').fadeOut();
$('.cell span').animate({ "marginTop" : "500px" });

(不是真正的修复)

任何帮助都会很棒!

最佳答案

问题不是没有触发 mouseleave,您面临的问题是动画需要 400 毫秒(默认动画持续时间)才能完成,这意味着动画在应用时直接覆盖 mouseleave css 更改你在 300 毫秒内离开场

为避免这种情况,您需要 stop动画。

$('.cell span').stop();
$('.cell .hover').fadeOut();

应该可以解决问题。

作为旁注,如果您使用 javascript 制作动画,最好更改为 velocity.js这比 jQuery 的动画快得多。

关于javascript - jQuery - 快速移动鼠标时 Mouseleave 不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31132808/

相关文章:

javascript - 我可以补间 D3 弧的 endAngle,但不是它的 startAngle。我究竟做错了什么?

javascript - 如何制作坐标图螺旋

javascript - 当用户想要重新加载页面时自定义 url

jquery - ASP-MVC : Different style-CSS for different languages

php - 从post到php获取多个变量

javascript - JavaScript 中 PubSub/过多事件和事件处理程序的性能成本?

javascript - 模态未启动 jquery

javascript - 对用户隐藏密码字段内容

javascript - $(this) 正在提醒 jquery 中先前选择的值

javascript - Twitter typeahead 默认建议 : how to get the first suggestions in the prefetched array?