gpt4 book ai didi

javascript - 不同div的随机颜色

转载 作者:太空狗 更新时间:2023-10-29 14:07:59 27 4
gpt4 key购买 nike

我有3个div

<div id="box1"></div>
<div id="box2"></div>
<div id="box3"></div>
<button>Enter</button>

我想使用 javascript 控制的 css 给它一个随机颜色。像这样:

var randomColor = Math.ceil(Math.random() * 3);
var color = "";
//Accessing the divs
var box1 = document.querySelector("#box1");
var box2 = document.querySelector("#box2");
var box3 = document.querySelector("#box3");

//Event
var button = document.querySelector("button");
button.addEventListener("click", randomize, false);
button.style.cursor = "pointer";

function render(){
box1.style.background = color;
box2.style.background = color;
box3.style.background = color;
}

function randomize(randomColor){
switch(randomColor){
case 1:
color = "red";
break;
case 2:
color = "blue";
break;
case 3:
color = "green";
break;
}
render();
}

问题是,它在每个 div 中给我相同的颜色。知道我该如何解决这个问题,如果可能的话,我想做纯 javascript 和 css 没有 jquery。我还在学习 javascript。谢谢..

最佳答案

您可以使用 class 代替 id 并将您的代码简化为以下内容。

// You could easily add more colors to this array.
var colors = ['red', 'blue', 'green', 'teal', 'rosybrown', 'tan', 'plum', 'saddlebrown'];
var boxes = document.querySelectorAll(".box");
var button = document.querySelector("button");

button.addEventListener("click", function () {
for (i = 0; i < boxes.length; i++) {
// Pick a random color from the array 'colors'.
boxes[i].style.backgroundColor = colors[Math.floor(Math.random() * colors.length)];
boxes[i].style.width = '100px';
boxes[i].style.height = '100px';
boxes[i].style.display = 'inline-block';
}
});

button.style.cursor = "pointer";
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<button>Enter</button>


在页面刷新/加载时随机化颜色。

// You could easily add more colors to this array.
var colors = ['red', 'blue', 'green', 'teal', 'rosybrown', 'tan', 'plum', 'saddlebrown'];
var boxes = document.querySelectorAll(".box");

for (i = 0; i < boxes.length; i++) {
// Pick a random color from the array 'colors'.
boxes[i].style.backgroundColor = colors[Math.floor(Math.random() * colors.length)];
boxes[i].style.width = '100px';
boxes[i].style.height = '100px';
boxes[i].style.display = 'inline-block';
}
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>

关于javascript - 不同div的随机颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27799125/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com