随机生成颜色

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            div{
                width: 200px;
                height: 200px;
                /*background-color: black;*/
            }
        </style>
    </head>
    <body>
        <div></div>
    </body>
    <script type="text/javascript">
        var ys = document.getElementsByTagName('div')[0];
        function rand(min,max){
            return parseInt(Math.random()*(max-min+1)+min);
        }
        function randColor(){
                var r=rand(0,255);
                var g=rand(0,255);
                   var b=rand(0,255);
                   return 'rgb('+r+','+g+','+b+')';
        }
        setInterval(function(){                
        ys.style.backgroundColor=randColor();
        },1000);
       //这样利用率更好
    //创建变量占用内存,函数在调用时才占用内存,调用之后清空不占用内存,(这样可以提高加载速度)
    </script>
</html>

在JavaScript中,有多种方法可以随机生成颜色,以下为你介绍最常见的两种方法,分别是生成十六进制颜色和RGB颜色。 ### 生成随机十六进制颜色 十六进制颜色代码以 `#` 开头,后面跟着6个十六进制字符,这些字符可以是数字 `0 - 9` 或字母 `a - f`。 ```javascript function getRandomHexColor() { let str = '#'; let arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f']; for (let i = 0; i < 6; i++) { let random = Math.floor(Math.random() * arr.length); str += arr[random]; } return str; } let hexColor = getRandomHexColor(); console.log(hexColor); ``` 上述代码定义了一个 `getRandomHexColor` 函数,通过循环6次从包含十六进制字符的数组中随机选取字符,最终拼接成一个完整的十六进制颜色代码。 ### 生成随机RGB颜色 RGB颜色由红(R)、绿(G)、蓝(B)三个通道组成,每个通道的值范围是0 - 255。 ```javascript function getRandomRGBColor() { var r = Math.floor(Math.random() * 256); var g = Math.floor(Math.random() * 256); var b = Math.floor(Math.random() * 256); var color = 'rgb(' + r + ',' + g + ',' + b + ')'; return color; } let rgbColor = getRandomRGBColor(); console.log(rgbColor); ``` 上述代码定义了一个 `getRandomRGBColor` 函数,通过 `Math.random()` 函数生成三个0 - 255之间的随机整数,分别作为红、绿、蓝通道的值,然后拼接成一个完整的RGB颜色字符串。 ### 支持两种格式的通用函数 还可以创建一个通用函数,根据传入的参数决定生成十六进制颜色还是RGB颜色。 ```javascript function getRandomColor(isHex = true) { if (isHex) { let str = '#'; let arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f']; for (let i = 0; i < 6; i++) { let random = Math.floor(Math.random() * arr.length); str += arr[random]; } return str; } else { var r = Math.floor(Math.random() * 256); var g = Math.floor(Math.random() * 256); var b = Math.floor(Math.random() * 256); return 'rgb(' + r + ',' + g + ',' + b + ')'; } } let hexColor2 = getRandomColor(); let rgbColor2 = getRandomColor(false); console.log(hexColor2); console.log(rgbColor2); ``` 上述代码定义了一个 `getRandomColor` 函数,它接受一个布尔类型的参数 `isHex`,默认值为 `true`。如果 `isHex` 为 `true`,则生成十六进制颜色;如果为 `false`,则生成RGB颜色
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值