javascript - 如何在javascript中更改backgorundColor元素onclick?
问题描述
我是 JavaScript 新手。我想在单击时更改菜单按钮的颜色,并在第二次单击时更改颜色。我用 JS 写了一个简单的代码,但它什么也没做。
document.getElementById("menuBtn div").onclick = changeColor;
function changeColor() {
if (changeColor.style.backgroundColor === "#EF6A6A") {
changeColor.style.backgroundColor = "#fff"
} else {
changeColor.style.backgroundColor = '#EF6A6A'
}
}
changeColor()
#menuBtn {
position: fixed;
display: block;
cursor: pointer;
right: 65px;
top: 35px;
z-index: 2;
cursor: pointer;
}
#menuBtn div {
width: 38px;
height: 5px;
background-color: #EF6A6A;
margin: 8px;
border-radius: 2100px;
transition: all 0.3s ease;
}
<div id="menuBtn">
<div class="line1"></div>
<div class="line2"></div>
<div class="line3"></div>
</div>
解决方案
最好创建一个新的 css 类并通过单击按钮进行切换。下面会改变backgroundColor
.menuBtn
const menuBtn = document.getElementById("menuBtn");
menuBtn.addEventListener("click", changeColor);
function changeColor() {
menuBtn.classList.toggle("bgColorOrange");
}
#menuBtn {
position: fixed;
display: block;
cursor: pointer;
right: 65px;
top: 35px;
z-index: 2;
cursor: pointer;
}
#menuBtn div {
width: 38px;
height: 5px;
background-color: #EF6A6A;
margin: 8px;
border-radius: 2100px;
transition: all 0.3s ease;
}
.bgColorOrange {
background-color: #EF6A6A;
}
<div id="menuBtn">
<div class="line1"></div>
<div class="line2"></div>
<div class="line3"></div>
</div>
如果要在背景颜色为 时添加线条的背景颜色menuBtn
白色#EF6A6A
。您可以再次创建一个新类并单击按钮进行切换。
const menuBtn = document.getElementById("menuBtn");
const lines = document.querySelectorAll(".line");
menuBtn.addEventListener("click", changeColor);
function changeColor() {
menuBtn.classList.toggle("bgColorOrange");
lines.forEach(line => line.classList.toggle("bgColorWhite"));
}
#menuBtn {
position: fixed;
display: block;
cursor: pointer;
right: 65px;
top: 35px;
z-index: 2;
cursor: pointer;
}
#menuBtn div {
width: 38px;
height: 5px;
background-color: #EF6A6A;
margin: 8px;
border-radius: 2100px;
transition: all 0.3s ease;
}
.bgColorOrange{
background-color: #EF6A6A;
}
.bgColorWhite{
background: white !important;
}
<div id="menuBtn">
<div class="line1 line"></div>
<div class="line2 line"></div>
<div class="line3 line"></div>
</div>
推荐阅读
- flutter - Flutter 重建 Consumer 的父小部件
- python - Databricks Pyspark - Java 堆空间错误
- wpf - 击中断点时鼠标冻结/滞后
- blazor - 将 Blazor Webassembly 项目包含到现有 ASP.NET Core 项目中
- javascript - 检测触摸设备捏合程度(缩放)
- visual-studio - 打开 VS 2019 社区版
- vue.js - 为什么 Vue 无法识别 v-html 属性中使用的数据成员?
- javascript - 我正在尝试用 Javascript 制作计算器。但它不工作
- java - 使用 maven-compiler-plugin 从编译中排除 src/main/java
- jenkins - ZAP 扫描:Jenkins 作业失败 (url_not_in_context)