#button #colors #clicking
#кнопка #Цвет #щелчок
Вопрос:
Привет, я нашел этот код glorius, когда искал помощь в решении моей проблемы с появлением на экране окна для щелчка, которое будет окрашиваться в 4 разных цвета. вот код, который я нашел, который является идеальным. Все, что я хочу, это начать с желтого, перейти к янтарному при нажатии, перейти к красному при 2-м щелчке и перейти к белому при 3-м щелчке
<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, но это меня зацепило! Любая помощь приветствуется
Ответ №1:
Вы можете достичь этой функциональности просто с помощью 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>
Комментарии:
1. Ты святой. Большое вам спасибо!
2. Мне нужно сделать это 32 раза, пытаясь понять, как сделать их больше!
3. 32 раза? Какое количество цветов вы хотите переключить?