如何使用此代码将style.color更改为十六进制随机值?
hexaTable = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'a', 'b', 'c', 'd', 'e', 'f'];
document.getElementById("button").onclick=
function(){
if (x==true) {
document.getElementById("text").innerHTML="Au revoir";
document.getElementById("text").style.color="#" + 6 * hexaTable [Math.floor(Math.random() * hexaTable.length)];
x=false;
}
else {
document.getElementById("text").innerHTML="Bonjour";
x=true;
}
};
答案 0 :(得分:3)
试试这个:
这将创建随机的十六进制颜色:(使用递归)
console.log('#' + (function co(a) {
return(a += [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'a', 'b', 'c', 'd', 'e', 'f'][~~(Math.random() * 16)]) && (a.length == 6) ? a : co(a);
})(''))
所以:
document.getElementById("text").style.color='#' + (function co(a) {
return(a += [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'a', 'b', 'c', 'd', 'e', 'f'][~~(Math.random() * 16)]) && (a.length == 6) ? a : co(a);
})('');
答案 1 :(得分:1)
这方面的一个解决方案是:
'#'+('000000'+parseInt(Math.random()*(256*256*256-1)).toString(16)).slice(-6)
答案 2 :(得分:0)
你实际上必须重复六次六进制[Math.floor(Math.random()* hexaTable.length)],例如:
document.getElementById("text").style.color="#" +
hexaTable[Math.floor(Math.random() * hexaTable.length)] +
hexaTable[Math.floor(Math.random() * hexaTable.length)] +
hexaTable[Math.floor(Math.random() * hexaTable.length)] +
hexaTable[Math.floor(Math.random() * hexaTable.length)] +
hexaTable[Math.floor(Math.random() * hexaTable.length)] +
hexaTable[Math.floor(Math.random() * hexaTable.length)];