如何通过按钮点击动态改变HTML元素的hover颜色?

动态切换一个元素的hover颜色

这个元素本来有一个hover属性,我通过点击一个按钮,来改变他的hover的颜色

阅读 1.3k
3 个回答
<div class='container'>
  <div class='element'>
  </div>

  <button class='change-color'>red</button>
  <button class='change-color'>green</button>
  <button class='change-color'>blue</button>
</div>
.element {
  width: 100px;
  aspect-ratio: 1;
  margin: 20px;
}

.element:hover {
  background: var(--color, red);
}
/**@type {HTMLDivElement}*/
const el = document.querySelector(".element");

document
  .querySelectorAll(".change-color")
  .forEach((/**@type {HTMLButtonElement}*/ e) => {
    e.addEventListener("click", () => {
      el.style.setProperty("--color", e.textContent);
    });
  });

可以通过点击事件来改变这个元素绑定的类名

<html>

<head>
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <style type="text/css">
    body {
      margin: 0;
    }
    .box{
      background: #333;
      color: #fff;
    }
    .box:hover{
      background: #f00;
    }
    .boxa:hover{
      background: #ff0;
      color: #000;
    }
  </style>
</head>


<body>

  <div>
    <div id="box" class="box">
      12344
    </div>
    <br />
    <button id="onClick">换一下hover颜色</button>
  </div>


</body>

<script>
  const onClick = document.getElementById('onClick');
  const box = document.getElementById('box');
  onClick.addEventListener('click',function(){
    box.className = "box boxa";
  })
</script>

</html>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏