将按钮从默认状态切换到按下状态并返回

时间:2017-06-13 16:02:22

标签: html css

我为一个简单的按钮做了一个风格。此按钮将打开下拉菜单。只要菜单打开,按钮就应该具有按下按钮的样式。

如何切换这些状态?我必须在那里使用一些JavaScript吗?我知道我可以使用onClick=functionName(),但如何将其恢复为默认值?



.btn {
  cursor: pointer;
  font-weight: bold;
  border-style: solid;
  border-radius: 10px;
  padding: 10px 15px 10px 15px;
}

#menuBtn {
  margin-right: 0;
  color: #ffffff;
  border-color: #3c3e42;
  background: linear-gradient(#5e5f64, #3c3e42);
}

#menuBtnPressed {
  margin-right: 0;
  color: #666666;
  border-color: #3c3e42;
  background: linear-gradient(#2b2d32, #3c3e42);
}

<button class="btn" id="menuBtn">Default</button>

<button class="btn" id="menuBtnPressed">Pressed</button>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

如果您还没有尝试使用:active,那么我会从那开始。但是,您可以在按钮上使用两种不同的状态。

  

:活动:如果仅在单击按钮时需要背景颜色   并且不想坚持下去。

     

:焦点:如果你想要背景颜色,直到焦点不对   按钮。

答案 1 :(得分:1)

使用一个类而不是两个ID,然后只需在点击时打开和关闭它。

function togglePressed(){
   document.getElementById('menuBtn').classList.toggle('pressed');
}
.btn {
  cursor: pointer;
  font-weight: bold;
  border-style: solid;
  border-radius: 10px;
  padding: 10px 15px 10px 15px;
}

#menuBtn {
  margin-right: 0;
  color: #ffffff;
  border-color: #3c3e42;
  background: linear-gradient(#5e5f64, #3c3e42);
}

#menuBtn.pressed {
  margin-right: 0;
  color: #666666;
  border-color: #3c3e42;
  background: linear-gradient(#2b2d32, #3c3e42);
}
<button class="btn" id="menuBtn" onclick="togglePressed()">Default</button>