我有一个背景,每次单击按钮时都会随机更改颜色。是否可以确保每次单击的颜色都不相同(避免同一颜色连续生成2-3次)? .js文件的源代码如下(HTML基本上只是按钮)。
var bgcolorlist, btn;
function newColor() {
bgcolorlist = '#'+Math.floor(Math.random()*16777215).toString(16);
document.body.style.backgroundColor = bgcolorlist;
}
function initAll() {
btn = document.getElementById('click1');
btn.addEventListener('click', newColor, false);
}
initAll();
最佳答案
请尝试以下操作:
var bgcolorlist, btn;
var colorList = [];
function newColor() {
bgcolorlist = '#'+Math.floor(Math.random()*16777215).toString(16);
while(colorList.indexOf(bgcolorlist) != -1){
bgcolorlist = '#'+Math.floor(Math.random()*16777215).toString(16);
}
colorList.push(bgcolorlist);
document.body.style.backgroundColor = bgcolorlist;
}
function initAll() {
btn = document.getElementById('click1');
btn.addEventListener('click', newColor, false);
}
initAll();