您的位置:首页 > Web前端 > JavaScript

JS获取随机颜色(3种方法)

2018-01-10 14:17 459 查看
一共三种方法,代码如下:

<script>
/*---------------------------- 方法一 -------------------------*/
var colorArr=['0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'];
function random(min,max){
if(isNaN(min) || isNaN(max)){
return null;
}
if(min > max){
min ^= max;
max ^= min;
min ^= max;
}
return (Math.random() * (max - min) | 0) + min;
}
function method1(){
var color="#";
for(var i=0;i<6;i++){
color += colorArr[random(0,16)];
}
return color;
}

/*---------------------------- 方法二 ------------------------*/
function method2(){
var color="#";
for(var i=0;i<6;i++){
color += (Math.random()*16 | 0).toString(16);
}
return color;
}

/*---------------------------- 方法三 -------------------------*/
function method3(){
return "#"+(function(color){
return new Array(7-color.length).join("0")+color;
})((Math.random() * 0x1000000 | 0).toString(16));
}

/*----------------------------- 测试 ---------------------------*/
var i=6;
while(i){
//console.log(method1());
//console.log(method2());
console.log(method3());
i--;
}

</script>
第一种:将0-9 a-f储存在数组中,然后每次获取一个随机数,获取6次

第二种:先获取一个十进制的数(范围为十六进制0-ffffff),然后转换为16进制。toString(16)

注意,不足6位则前面补零
第三种:使用了立即执行函数获取随机数,使用数组的join()补足16进制颜色的零位。

代码复杂程度依次增大,推荐使用第二种
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: