繁体   English   中英

调整窗口大小时,Chrome中触发了Mouseenter事件

[英]Mouseenter event triggered in chrome when resizing window

Google Chrome浏览器中的行为非常奇怪!

我有一个网格div ,并在每个然后,我添加eventListenner为mouseenter事件。 在我的演示代码中,当事件触发时,div获取opacity:0.2

$(".target_div_class").on("mouseenter",  [my action ...])

嗯,除了Google Chrome浏览器外,其他浏览器都可以使用。

要重现chrome中的异常行为, 请转到我的codepen演示页 ,将鼠标指针放在网格的前面,并开始快速调整主浏览器窗口的大小,即使没有鼠标,您也会发现某些div的不透明度已更改滚下 !

我做错了,是Chrome不喜欢的特殊jquery事件吗?

谢谢

拉里

编辑-1-

我想我理解为什么有些div接收该事件。

看来,当我单击浏览器的边框(左侧或右侧)时,Chrome会保留鼠标位置X和Y的痕迹。

然后,当缓慢扩展浏览器宽度时,此“开始鼠标位置”下的任何div都会接收到该事件。 首先缩小浏览器的宽度,然后慢慢扩展它,如果我用钢笔将其放到鼠标开始的位置,然后再调整大小,这很简单,这很清楚。 非常非常奇怪

编辑-2-

此行为仅在Windows 8操作系统上 ,我只是在Mac上进行过测试,没有问题!

好吧,我已经在几个站点上测试了这种行为,例如: https : //devart.withgoogle.com/

我猜想是由Google专业人士做出的,并且再次发生了这种奇怪的行为,我将尝试查找如何与Google Chrome小组联系...

我认为chrome无法完全支持mouseenter / mouseleave。 与IE中不同,Chrome仅模拟这些功能。

但是,仅当有人尝试以比浏览器边缘实际移动更快的速度调整窗口大小并且鼠标瞬间进入页面时,才会出现问题。 因此,它不是一个不合理的行为。 您随时可以尝试使用

$(window).resize(function() {
    //some code to reset opacity
});

看看是否有帮助

$(".target_div_class").on("mouseenter", function(){
 event.stopPropagation();
   //your code
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM