function rgbToHex(r, g, b) { return "#" + ((1<< 24) + (r<< 16) + (g<< 8) + b).toString(16).slice(1); }
上面的函数可以将RGB值表示为16进制。下面是具体实现方式的解释:
在函数中,大家首先将R、G、B三个值转化成一个数值。这一步的方法是:将1左移24位,再将R、G、B左移16、8、0位,然后将这4个数值进行或运算。
所以,如果R=255、G=0、B=0,那么RGB值就是16711680。这个数值可以使用toString(16)方法将它转化为16进制表示。但输出的结果是8位,大家需要将前两位的0去掉,所以使用slice(1)方法。
使用这个函数非常简单!
var redHex = rgbToHex(255, 0, 0);//#ff0000 var greenHex = rgbToHex(0, 255, 0);//#00ff00 var blueHex = rgbToHex(0, 0, 255);//#0000ff
通过这个函数,大家可以轻松地将RGB颜色值转化为CSS中常用的16进制表示!