JS:颜色十六进制,rgb转换

重点解析:

1.前端开发中颜色值有三种表现形式:rgb,十六进制和rgba。rbg具体形式为rgb(r,g,b),r g b的取值范围都在0-255,为十进制;rgba具体形式为rgba(r,g,b,a),和rgb相比多了参数a,表示透明度,取值范围是0-1,为十进制;十六进制具体形式是#加六个数字,六个数字两个为一组,依次表示rgb中的r g b。所以颜色码值之间的转换,实际上是十六进制和十进制之间的转换。

2.parseInt(str,type),依据指定基数type把str转换成一个十进制整数。str是需要转换成整数的字符串,type是被转换字符串的进制。比如parseInt('111',2)=7;parseInt('111',10)=111

3.num.toString(type),依据指定基数type把十进制数num转换成一个字符串。type是需要转换成的进制。比如Number(7).toString(2)='111'

4.string.padStart(num,str),在字符串string的长度不足num的时候,在前方用str补齐;后方补齐用string.padEnd(num,str)

实用方法:

1.十六进制转rgb

function hexTorgb(hex){
    let rgb='rgb('
    hex=hex.replace('#','')
    for(let i=0;i

2.十六进制转rgba

function hexTorgba(hex,a){
    let rgba='rgba('
    hex=hex.replace('#','')
    for(let i=0;i

3.rgb转十六进制

function rgbTohex(rgb){
    let obj={},hex=''
    obj.r=parseInt(rgb.slice(rgb.indexOf('(')+1,rgb.indexOf(',')))
    obj.g=Number(rgb.slice(rgb.indexOf(',')+1,rgb.lastIndexOf(',')))
    obj.b=Number(rgb.slice(rgb.lastIndexOf(',')+1,rgb.indexOf(')')))
    hex=`#${obj.r.toString(16).padStart(2,'0')}`
        +`${obj.g.toString(16).padStart(2,'0')}`
        +`${obj.b.toString(16).padStart(2,'0')}`
    return hex
}

你可能感兴趣的:(javascript,前端,开发语言)