js动态生成颜色浅的16进制值

JavaScript025

js动态生成颜色浅的16进制值,第1张

调用的例子:

console.log(ColorLuminance(colorRGB(),0.5))  //先自动生成16进制颜色,在转成比原有颜色轻50%;

//16进制随机颜色

        function colorRGB(){

            return '#' + (function (h) {

                return new Array(7 - h.length).join("0") + h

            })((Math.random() * 0x1000000 << 0).toString(16))

        }

ColorLuminance接受两个参数:

参数1: 十六进制颜色值,例如“#abc”或“#123456”(散列是可选的)

参数2: 亮度因数,即,-0.1是10%更暗,0.2是轻20%等。

function ColorLuminance(hex, lum) {

            // validate hex string

            hex = String(hex).replace(/[^0-9a-f]/gi, '')

            if (hex.length < 6) {

                hex = hex[0]+hex[0]+hex[1]+hex[1]+hex[2]+hex[2]

            }

            lum = lum || 0

            // convert to decimal and change luminosity

            var rgb = "#", c, i

            for (i = 0 i < 3 i++) {

                c = parseInt(hex.substr(i*2,2), 16)

                c = Math.round(Math.min(Math.max(0, c + (c * lum)), 255)).toString(16)

                rgb += ("00"+c).substr(c.length)

            }

            return rgb

        }

相关资源:https://blog.csdn.net/dingshi7798/article/details/105829757

1、实现获得rgb颜色的方法代码 。

2、获得到格式如下: rgb(225, 22, 23)然后进行拆分的方法代码。

3、把 (225,22,23)字符串进行拆分的方法代码。

4、最后的组合的方法代码。

5、获得十六进制颜色js方法代码。

6、获得十六进制颜色css样式代码。

创建三个类名,三个类名分别给上三个背景颜色,如:

.bgColor0{background-color:#158AEA}

.bgColor1{background-color:#996633}

.bgColor2{background-color:#66FF00}

获取012三个随机数前面添加字符串'bgColor'就得到随机的类名,然后给相应的元素添加得到的随机类名就行了。

而要获取012三个随机数就用Math.floor(Math.random()*3)获取。

不过你要求背景色不能重复,那么就把三个类名放进一个数组里。已经使用的类名就用”数组名.shift“把它从数组中弹出。然后剩下的两个类名就要获取01两个随机数,就用Math.floor(Math.random()*2)获取0和1其中一个数。

剩下的你知道该怎么做了。