javascript - 当我将鼠标悬停在按钮的边缘时,如何让我所有的栏都变成黑色?

标签 javascript html css

我想知道当我将鼠标悬停在按钮的边缘时如何让所有的栏都变成黑色。目前,当我将鼠标悬停在中间的栏上时,我只能让一个栏变黑,但我无法弄清楚如何在鼠标悬停在实际按钮上时让所有的栏都变黑。

这是 jsfiddle:https://jsfiddle.net/nc0L83am/

代码如下:

<html>
<head>
<link rel="stylesheet" media="all" type="text/css" href="drop.css">
<style>
.c-hamburger {
  display: block;
  position: relative;
  overflow: hidden;
  margin: 0;
  padding: 0;
  width: 64px;
  height: 64px;
  font-size: 0;
  text-indent: -9999px;
  appearance: none;
  box-shadow: none;
  border-radius: none;
  border: none;
  cursor: pointer;
  transition: background 0.1s;
  border-radius:10px;    
  background: blue;
}
.c-hamburger:focus {
  outline: none;
}

.c-hamburger span:hover{background: black;}

.c-hamburger span {
  display: block;
  position: absolute;
  top: 28px;
  left: 10px;
  right: 10px;
  height: 8px;
  background: #e6e6e6;
  border-radius:100px;
}

.c-hamburger span::before,
.c-hamburger span::after {
  position: absolute;
  display: block;
  left: 0;
  width: 100%;
  height: 8px;
  background-color: #e6e6e6;
  content: "";
  border-radius:100px;    
}

.c-hamburger span::before {
  top: -15px;
}

.c-hamburger span::after {
  bottom: -15px;
}

.c-hamburger--htx {

}

.c-hamburger--htx span {
  transition: background 0s 0.1s;
}

.c-hamburger--htx span::before,
.c-hamburger--htx span::after {
  transition-duration: 0.1s, 0.1s;
  transition-delay: 0.1s, 0s;
}

.c-hamburger--htx span::before {
  transition-property: top, transform;
}

.c-hamburger--htx span::after {
  transition-property: bottom, transform;
}

/* active state, i.e. menu open */
.c-hamburger--htx.is-active {
  background-color: #cb0032;
}

.c-hamburger--htx.is-active span {
  background: none;
}

.c-hamburger--htx.is-active span::before {
  top: 0;
  transform: rotate(45deg);
  background: white;
}

.c-hamburger--htx.is-active span::after {
  bottom: 0;
  transform: rotate(-45deg);
  background: white;
}

.c-hamburger--htx.is-active span::before,
.c-hamburger--htx.is-active span::after {
  transition-delay: 0s, 0.1s;
}
</style>
</head>
<body>

<button class="c-hamburger c-hamburger--htx">
  <span>toggle menu</span>
</button>

<script>
(function() {

  "use strict";

  var toggles = document.querySelectorAll(".c-hamburger");

  for (var i = toggles.length - 1; i >= 0; i--) {
    var toggle = toggles[i];
    toggleHandler(toggle);
  };

  function toggleHandler(toggle) {
    toggle.addEventListener( "click", function(e) {
      e.preventDefault();
      (this.classList.contains("is-active") === true) ? this.classList.remove("is-active") : this.classList.add("is-active");
    });
  }

})();
</script>
</body>

最佳答案

将悬停移动到按钮而不是跨度

.c-hamburger:hover span, 
.c-hamburger:hover span::before,
.c-hamburger:hover span::after { 
    background: black; 
}

关于javascript - 当我将鼠标悬停在按钮的边缘时,如何让我所有的栏都变成黑色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34758279/

相关文章:

javascript - 需要进一步的帮助来使 javascript 同步生成器处理异步函数

javascript - 如何获取多个文本框值?

javascript - div 中的内容在 safari 中显示在边界外

css - 为什么我的图片没有右对齐?

html - 行内 block 元素未按预期出现

javascript - Ajax 之前的 JQuery .each 处理

javascript - v-if 当函数返回 true 或 false 时不起作用 [VueJs]

javascript - 具有 ID 的 DOM 树元素是否成为全局属性?

javascript - html中的按钮触发快捷键

Google 用于 Gmail 和其他产品的 CSS 格式化程序?