Internet Explorer 中的鼠标移动问题

2024-01-08

当事件目标位于鼠标上方时,Internet Explorer 不会触发 onmousemove 事件<img>元素,缺乏背景。

但当目标有背景时,它确实会注册事件。有人对此有解释吗?我在 IE10、IE9 和 IE8 中也有同样的行为。

在这里小提琴:http://jsfiddle.net/xSpqE/2/ http://jsfiddle.net/xSpqE/2/


正如OP询问原因,这是我的突破:

直观地解释起来更容易,所以首先让我们向imgs:

$('img').click(function() {
  $('.pageX').text('img clicked!');
});

Fiddle http://jsfiddle.net/xSpqE/25/

很公平。您在 Chrome/Firefox/非 IE 浏览器中单击图像,并且不会发生任何事情,因为绝对定位div覆盖它。

现在在 IE 上尝试一下。这img的点击处理程序被解雇!因此,它表明 IE 通过绝对定位的“透明”(无内容或背景)元素推送元素。更有趣的是,相对定位的元素也遇到同样的问题和设置z-index在任一/两个元素上也无法解决它。当然,由于图像位于叠加层之上,因此不会触发叠加层的mousemove event.

解决方法是为覆盖层提供一些“填充”,例如background:rgba(0,0,0,0)将强制 IE 将绝对定位的元素保留在顶部。Fiddle http://jsfiddle.net/xSpqE/26/。如果您需要支持不支持 rgba 的浏览器,请使用 1x1px 透明 gif 作为背景。

我从来没有在任何规范中看到过这个定义,也没有正式报告为错误。没有内容或背景的绝对定位元素没有逻辑或理由遭受此 z-index 问题,因此我将其称为另一个 IE bug。也许可以在微软论坛 http://social.technet.microsoft.com/Forums/en/ieitprocurrentver/threads会有用的。

另外,相关问题:IE bug:具有不透明背景色的绝对定位元素 https://stackoverflow.com/questions/4378497/ie-bug-absolutely-positioned-element-with-a-non-transparent-background-colour

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Internet Explorer 中的鼠标移动问题 的相关文章