如何在鼠标悬停到页面上的所有div上添加悬停效果?

卡尔·德奥莱昂·伦格伦

我有一个16x16的小方块网格。我添加了永久的“悬停”效果,当我将鼠标放在其上方时,使第一个框变为红色。但是,我想向页面上的所有框添加相同的效果。我不知道该怎么做-我试图在整个页面上添加一个事件监听器,并使用了target.nodeName和target.NodeValue,但无济于事。我包含了工作版本,其中,将鼠标悬停时修复框变为红色。

var n=16; //take grid column value as you want

const bigContainer = document.querySelector('.bigContainer')

for(var i = 1; i < n; i++) {
    bigContainer.innerHTML+='<div class="row">';

    for(j = 0; j < n; j++) {
        bigContainer.innerHTML+='<div class="smallBox">';
    }
}

const smallBox = document.querySelector('.smallBox');

smallBox.addEventListener('mouseover', () => {
    smallBox.classList.add('permahover');
});
.smallBox {
    border: 1px solid black;
    width: 20px;
    height: 20px;
    display: inline-block;
}

.permahover {
    background: red;
}

h1 {
    text-align: center;
}

.bigContainer {
    text-align: center;
}
<h1>Etch-a-Sketch Assignment - The Odin Project</h1>
<div class="bigContainer">

</div>

达蒙

您遇到的直接问题是,这仅是查询一个元素,然后向其中添加一个事件侦听器。

const smallBox = document.querySelector('.smallBox');

smallBox.addEventListener('mouseover', () => {
    smallBox.classList.add('permahover');
});

在代码的上面部分,querySelector仅返回第一个匹配的元素。您可能在此处查找querySelectorAll,该查询返回匹配元素NodeList

您有两个选择(如果您想进一步重组代码,可能还有其他选择)。天真的方法实际上是查询所有单元,并向每个单元添加事件侦听器。

var n=16; //take grid column value as you want

const bigContainer = document.querySelector('.bigContainer')

for(var i = 1; i < n; i++) {
    bigContainer.innerHTML+='<div class="row">';

    for(j = 0; j < n; j++) {
        bigContainer.innerHTML+='<div class="smallBox">';
    }
}

const smallBoxes = document.querySelectorAll('.smallBox');

[...smallBoxes].forEach(smallBox => {
  smallBox.addEventListener('mouseover', () => {
      smallBox.classList.add('permahover');
  });
})
.smallBox {
    border: 1px solid black;
    width: 20px;
    height: 20px;
    display: inline-block;
}

.permahover {
    background: red;
}

h1 {
    text-align: center;
}

.bigContainer {
    text-align: center;
}
<h1>Etch-a-Sketch Assignment - The Odin Project</h1>
<div class="bigContainer">

</div>

另一个选择是使用您确定的事件委托这是您可以利用的方法。注意:这种方法对于诸如“ mouseover”之类的侵略性事件来说有点技巧,因为您可能会得到假阳性目标(例如外部容器)。

var n=16; //take grid column value as you want

const bigContainer = document.querySelector('.bigContainer')

for(var i = 1; i < n; i++) {
    bigContainer.innerHTML+='<div class="row">';

    for(j = 0; j < n; j++) {
        bigContainer.innerHTML+='<div class="smallBox">';
    }
}

bigContainer.addEventListener('mouseover', e => {
  var target = e.target

  if (target !== bigContainer) {
    target.classList.add('permahover')
  }
})
.smallBox {
    border: 1px solid black;
    width: 20px;
    height: 20px;
    display: inline-block;
}

.permahover {
    background: red;
}

h1 {
    text-align: center;
}

.bigContainer {
    text-align: center;
}
<h1>Etch-a-Sketch Assignment - The Odin Project</h1>
<div class="bigContainer">

</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在鼠标悬停的图像上显示悬停效果

来自分类Dev

如何在鼠标悬停事件上添加索引?

来自分类Dev

当用户将鼠标悬停在按钮的父容器上时,如何在按钮上添加悬停效果?

来自分类Dev

鼠标悬停在所有元素上同时发生的效果

来自分类Dev

当鼠标悬停在悬停元素上时,如何设置悬停效果继续显示?

来自分类Dev

当鼠标悬停在悬停元素上时,如何设置悬停效果继续显示?

来自分类Dev

全屏按钮上的鼠标悬停效果

来自分类Dev

图像鼠标悬停效果如何?

来自分类Dev

CSS效果,将鼠标悬停在div容器上,所有其他div容器会降低不透明度

来自分类Dev

将鼠标悬停在所有图块上

来自分类Dev

更改鼠标悬停CSS上的所有内容

来自分类Dev

将鼠标悬停在按钮上,同时仍具有其背后元素的悬停效果

来自分类Dev

将鼠标悬停在该图像上方的按钮上时,如何对图像应用悬停效果?

来自分类Dev

在将鼠标悬停到具有不同类的元素时将样式添加到列表元素

来自分类Dev

移除鼠标悬停效果

来自分类Dev

移除鼠标悬停效果

来自分类Dev

jQuery鼠标悬停效果

来自分类Dev

如何在div鼠标悬停时显示按钮

来自分类Dev

如何在鼠标悬停时显示div元素?

来自分类Dev

如何在鼠标悬停时显示隐藏的“ div”?

来自分类Dev

如何在鼠标悬停在div中心对齐图像

来自分类Dev

当使用jquery将鼠标悬停到特定行时如何将行值附加到div中

来自分类Dev

鼠标悬停在表格中除第一行外的所有行上的效果

来自分类Dev

表和鼠标悬停效果(悬停)

来自分类Dev

如何将图像设置为鼠标悬停在所有内容之上的div?

来自分类Dev

如何在D3中的节点上绘制的饼图上添加鼠标悬停属性?

来自分类Dev

如何在WooCommerce中将鼠标悬停在产品上添加更多信息(节选)

来自分类Dev

如何在D3中的节点上绘制的饼图上添加鼠标悬停属性?

来自分类Dev

如何在css中的图像上模拟鼠标悬停

Related 相关文章

  1. 1

    如何在鼠标悬停的图像上显示悬停效果

  2. 2

    如何在鼠标悬停事件上添加索引?

  3. 3

    当用户将鼠标悬停在按钮的父容器上时,如何在按钮上添加悬停效果?

  4. 4

    鼠标悬停在所有元素上同时发生的效果

  5. 5

    当鼠标悬停在悬停元素上时,如何设置悬停效果继续显示?

  6. 6

    当鼠标悬停在悬停元素上时,如何设置悬停效果继续显示?

  7. 7

    全屏按钮上的鼠标悬停效果

  8. 8

    图像鼠标悬停效果如何?

  9. 9

    CSS效果,将鼠标悬停在div容器上,所有其他div容器会降低不透明度

  10. 10

    将鼠标悬停在所有图块上

  11. 11

    更改鼠标悬停CSS上的所有内容

  12. 12

    将鼠标悬停在按钮上,同时仍具有其背后元素的悬停效果

  13. 13

    将鼠标悬停在该图像上方的按钮上时,如何对图像应用悬停效果?

  14. 14

    在将鼠标悬停到具有不同类的元素时将样式添加到列表元素

  15. 15

    移除鼠标悬停效果

  16. 16

    移除鼠标悬停效果

  17. 17

    jQuery鼠标悬停效果

  18. 18

    如何在div鼠标悬停时显示按钮

  19. 19

    如何在鼠标悬停时显示div元素?

  20. 20

    如何在鼠标悬停时显示隐藏的“ div”?

  21. 21

    如何在鼠标悬停在div中心对齐图像

  22. 22

    当使用jquery将鼠标悬停到特定行时如何将行值附加到div中

  23. 23

    鼠标悬停在表格中除第一行外的所有行上的效果

  24. 24

    表和鼠标悬停效果(悬停)

  25. 25

    如何将图像设置为鼠标悬停在所有内容之上的div?

  26. 26

    如何在D3中的节点上绘制的饼图上添加鼠标悬停属性?

  27. 27

    如何在WooCommerce中将鼠标悬停在产品上添加更多信息(节选)

  28. 28

    如何在D3中的节点上绘制的饼图上添加鼠标悬停属性?

  29. 29

    如何在css中的图像上模拟鼠标悬停

热门标签

归档