javascript - 与周围空单元格重叠的 css 网格对象上的鼠标悬停事件

标签 javascript jquery html css grid

这似乎是一个简单的想法,但事实证明过于复杂。我试图有两个重叠的网格对象,一个在另一个的顶部在一个固定的位置。我想在任一重叠网格中的非空单元格上注册鼠标悬停事件。

在这个例子中,我有两个重叠的网格。然而,mouseevent 只为最上面的网格元素触发,即使有空单元格。因此,例如,如果我将光标放在红色方 block 上,则不会触发鼠标事件,但对于蓝色方 block ,它会触发。

有关如何解决此问题的任何想法或解决方法。谢谢!

$(".elem1").mouseenter(function() {
    console.log("elem1");
})

$(".elem2").mouseenter(function() {
    console.log("elem2");
})
.container1 {
    position:fixed;

    display: grid;

    width: 100%;

    grid-template-columns: 20px 100px 1fr;
    grid-template-rows: 100px;
    grid-template-areas: ". elem1 .";
}

.container2 {
    position:fixed;

    display: grid;

    width: 100%;

    grid-template-columns: 50px 100px 1fr;
    grid-template-rows:100px;
    grid-template-areas: ". elem2 .";
}

.elem1 {
    background-color: red;
    grid-area: elem1;
}

.elem2 {
    background-color: blue;
    grid-area: elem2;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container1"><div class="elem1"></div></div>
<div class="container2"><div class="elem2"></div></div>

最佳答案

即使顶部网格的某些部分在视觉上是空的,它们仍然接收鼠标事件并妨碍其后面的事情。

你可以这样做:

.container2 { pointer-events: none }
.elem2 { pointer-events: visible }

使 .container2 的空白部分不可点击,而 .elem2 保持可点击。这在 IE 中不起作用。

关于javascript - 与周围空单元格重叠的 css 网格对象上的鼠标悬停事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49777580/

相关文章:

javascript - Javascript 验证周六和周日

javascript - CSS-将页脚粘贴到页面底部(因此仅在滚动后可见)没有 html 选择器?

javascript - 具有多个值的 JQuery 多选

javascript - 在 IE 中动态添加到 DOM 时 Flash 对象不起作用

javascript - PHP在函数中获取唯一值并将其传递给查看文件

javascript - 仅在使用 jquery 的鼠标按下事件上更改元素 css

html - 如何设计一个非常简单的 HTML 页面?

javascript - document.preventDefault() 不是我需要的

JavaScript 闭包 - 为什么只有 result3() 的输出受 nAdd() 影响?

javascript - setTimeout 运行其回调代码比没有它慢得多