button - HTML5 按钮颜色
问题描述
嗨,我在寻求帮助解决屏幕上的点击框会变成 4 种不同颜色的问题时发现了这个 glorius 代码。这是我发现的完美代码。我想要的只是从黄色开始,到琥珀色的onlick,在第二次点击时变成红色,在第三次点击时变成白色
<html>
<body>
<style>
.H1toH5 input { display: none; }
.H1toH5 .seatButton { padding: 5px; border: 1px solid #ccc; background: yellow; }
.H1toH5 input:checked + .seatButton { background: red; }
</style>
<div class="H1toH5">
<label>
<input type="checkbox" />
<span class="seatButton">H1</span>
</label>
</body>
</html>
我对 css 很陌生,但它让我迷上了 atm!任何帮助都值得赞赏
解决方案
您只需使用 JavaScript 即可实现此功能。
<!DOCTYPE html>
<html>
<body>
<style>
.H1toH5 input { display: none; }
.H1toH5 .seatButton { padding: 5px; border: 1px solid #ccc; background: yellow; }
</style>
<div class="H1toH5">
<label>
<input type="checkbox" />
<span id = "myButton" class="seatButton">H1</span>
</label>
</body>
<script>
let button = document.getElementById("myButton");
let counter = 1;
button.addEventListener("click", function() {
if (counter == 1) {
button.style.background = "#FFBF00";
} else if (counter == 2) {
button.style.background = "red";
} else if (counter == 3) {
button.style.background = "white";
} else if (counter == 4) {
button.style.background = "yellow";
counter = 0;
}
counter++;
});
</script>
</html>
更新部分
你可以用任意数量的颜色来做到这一点。只需使用键/值对制作一个字典,其中键是索引,值是颜色。
像这样的东西
let myDictionary = {
1: "red",
2: "yellow",
...
};
这是 32 种颜色的代码。
<!DOCTYPE html>
<html>
<body>
<style>
.H1toH5 input { display: none; }
.H1toH5 .seatButton { padding: 5px; border: 1px solid #ccc; color: #FFFFFF; background: #264653; }
</style>
<div class="H1toH5">
<label>
<input type="checkbox" />
<span id = "myButton" class="seatButton">1</span>
</label>
</body>
<script>
let button = document.getElementById("myButton");
let counter = 2;
let colors = {
1: "#264653",
2: "#2a9d8f",
3: "#e9c46a",
4: "#f4a261",
5: "#e76f51",
6: "#ffcdb2",
7: "#ffb4a2",
8: "#e5989b",
9: "#b5838d",
10: "#6d6875",
11: "#e63946",
12: "#f1faee",
13: "#a8dadc",
14: "#457b9d",
15: "#1d3557",
16: "#14213d",
17: "#fca311",
18: "#e5e5e5",
19: "#003049",
20: "#d62828",
21: "#fcbf49",
22: "#cdb4db",
23: "#ffc8dd",
24: "#ffafcc",
25: "#bde0fe",
26: "#a2d2ff",
27: "#ef476f",
28: "#ffd166",
29: "#06d6a0",
30: "#e09f3e",
31: "#540b0e",
32: "#4a4e69",
}
button.addEventListener("click", function() {
button.style.background = colors[counter]; // Updating the colour
button.textContent = counter; // Updating the text inside the span tag.
// When we reach the last index, or the colour, then reset the counter to zero to start from the beginning.
if (counter == 32) {
counter = 0;
}
counter++;
});
</script>
</html>
推荐阅读
- azure - 每 15 天的 Azure CRON 表达式
- javascript - 角度 4 和 6 之间的差异
- nginx - Nexus3 + Nginx 反向代理
- java - Scala 12.x 和 Java 11 `String.lines`,如何在链式调用中强制进行隐式转换?
- swift - 如何在 Swift 中为 Radio Live Streaming 服务实现 HLS
- python - Django注册进度条
- maven - 是否可以在 CLI 中添加 MVN 选项?
- r-lavaan - 使用多个 DV 在 lavaan 中进行调解
- python - 无法脱离登录系统
- android - Appium。如何在具有 `android:launchMode="singleInstance"` 标志的活动上查找元素?