tabla poner letras letra las como colores color codigo cambiar buscador javascript jquery css colors rgba

javascript - poner - Cómo extraer r, g, b, a valores del color CSS?



tabla de codigo de colores (6)

¿Cuál sería la forma más fácil de transformar

$(''#my_element'').css(''backgroundColor'')

para objetar así:

{ r: red_value, g: green_value, b: blue_value, a: alpha_value }

?


Harías algo como:

$.fn.ToRgb = function() { if(this.charAt(0) == "#"){this = this.substring(1,7);} //remove the # return { R : parseInt(this.substring(0,2) ,16), G : parseInt(this.substring(2,4) ,16), B : parseInt(this.substring(4,6) ,16), } } RGB = $(''#my_element'').css(''backgroundColor'').ToRgb(); /* * console.log(rgb) => * { * R: X * G: X * B: X * } */

Bastante simple :)


Supongamos que tiene la siguiente regla de CSS:

#my_element { background-color: rgba(100, 0, 255, 0.5); }

Entonces así es como puedes obtener un objeto RBGA:

var colorStr = $(''#my_element'').css(''backgroundColor''); // "rgba(100, 0, 255, 0.5)" // using string methods colorStr = colorStr.slice(colorStr.indexOf(''('') + 1, colorStr.indexOf('')'')); // "100, 0, 255, 0.5" var colorArr = colorStr.split('',''), i = colorArr.length; while (i--) { colorArr[i] = parseInt(colorArr[i], 10); } var colorObj = { r: colorArr[0], g: colorArr[1], b: colorArr[2], a: colorArr[3] }


var c = $(''body'').css(''background-color''); var rgb = c.replace(/^(rgb|rgba)/(/,'''').replace(//)$/,'''').replace(//s/g,'''').split('',''); for(var i in rgb) { console.log(rgb[i]); }

Pruébelo aquí http://jsbin.com/uhawa4

Editar :

var c = $(''body'').css(''background-color''); var rgb = c.replace(/^rgba?/(|/s+|/)$/g,'''').split('',''); for(var i in rgb) { console.log(rgb[i]); }

o incluso de una manera más simple, solo apuntando a los números

var c = ''rgba(60,4,2,6)''; var rgb = c.match(//d+/g); for(var i in rgb) { console.log(rgb[i]); }


Más simple:

//javascript code var color = $(''#my_element'').css(''backgroundColor''); var rgb = /rgb/((/d+), (/d+), (/d+)/)/.exec(color); var r = rgb[1], g = rgb[2], b = rgb[3]; console.log(''Red :'' + r); console.log(''Green:'' + g); console.log(''Blue :'' + b);


Para convertir cadena de rgba a objeto con claves:

convertRGBtoOBJ(colorString) { const rgbKeys = [''r'', ''g'', ''b'', ''a'']; let rgbObj = {}; let color = colorString.replace(/^rgba?/(|/s+|/)$/g,'''').split('',''); for (let i in rgbKeys) rgbObj[rgbKeys[i]] = color[i] || 1; return rgbObj; } console.log(convertRGBtoOBJ(''rgba(23,54,230,0.5)'')) /* Object {r: "23", g: "54", b: "230", a: 0.5} */


Como se ve aquí :

R = hexToR("#FFFFFF"); G = hexToG("#FFFFFF"); B = hexToB("#FFFFFF"); function hexToR(h) {return parseInt((cutHex(h)).substring(0,2),16)} function hexToG(h) {return parseInt((cutHex(h)).substring(2,4),16)} function hexToB(h) {return parseInt((cutHex(h)).substring(4,6),16)} function cutHex(h) {return (h.charAt(0)=="#") ? h.substring(1,7):h}

Este script básicamente toma cada par de colores de su código hexcolor (por ejemplo, # F0556A) y lo cambia a un número entero usando parseInt con base 16.