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

一共三种方法,代码如下:

	<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进制颜色的零位。

代码复杂程度依次增大,推荐使用第二种

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值