4

所以我在另一个元素后面有一个元素,但它仍然可见(它只被元素本身部分覆盖,但完全被上面元素的 margin 属性覆盖)。我想在鼠标悬停时触发鼠标事件,但由于前面的元素,它没有传递给它。我知道如何计算我是否超过它以及如何指向它,但我不知道如何发送事件onmouseoverorhoveronmouseout.

如果有帮助,我会使用document.getElementById("<calculated id>"). 我知道这是可行的,因为它的 ID 是基于它在网格中的位置,所以我只需要计算鼠标的位置并将其与网格相关联。

此外,应该发生的事件(但不是因为前面的事情)是:hover通过 CSS 触发简单过渡动画的事件。

4

3 回答 3

3
document.getElementById('elementInFront').addEventListener('mouseenter', function(){
    document.getElementById('elementBehind').DoYourStuff();
});
于 2013-04-19T20:53:17.977 回答
1

这行得通吗?我不确定我是否理解你的意图。

var item = document.getElementById("CalculatedId");
item.addEventListener("mouseover", func, false);

function func()
{  
   console.log("Hovered");
}
于 2013-04-19T20:53:23.120 回答
-1

您可以使用 css 属性

pointer-events: none;

在顶部元素上。这将允许所有鼠标事件“穿透”到后面的元素。不幸的是,这在 IE 中不起作用,唯一简单的替代方法是使前端元素的背景透明

于 2013-04-19T20:54:10.713 回答