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

版权声明:本文的原作者 http://blog.csdn.net/mooncom/article/ ,支持原著,拒绝盗版。 https://blog.csdn.net/MOONCOM/article/details/79023068

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

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

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

猜你喜欢

转载自blog.csdn.net/MOONCOM/article/details/79023068