Comunidad de diseño web y desarrollo en internet online

saber el color de la celda de una tabla Javascript

Citar            
MensajeEscrito el 05 Dic 2009 12:31 am
Quisiera saber si es posible salvar el color en hexagecimal desde la celda de una tabla con javascript o hay que aplicar formula


Código HTML :

  <table  border="0" >
            <tr>
              <td width="15" style="background-color:#FFFFFF" onclick="color(this)">&nbsp;</td>
              <td width="15" style="background-color:#CCCCCC" onclick="color(this)">&nbsp;</td>
              <td width="15" style="background-color:#999999" onclick="color(this)">&nbsp;</td>
              <td width="15" style="background-color:#666666" onclick="color(this)">&nbsp;</td>
              <td width="15" style="background-color:#333333" onclick="color(this)">&nbsp;</td>
              <td width="15" style="background-color:#000000" onclick="color(this)">&nbsp;</td>
            </tr>
</table>

Código Javascript :

function color(objeto){
var   color=objeto.style.backgroundColor


pero me devuelve la varible color de esta forma " rgb(0, 0, 255) "


Gracias...

Por asdmaster

14 de clabLevel



 

chrome
Citar            
MensajeEscrito el 05 Dic 2009 01:22 am
Bueno implemente una formula para convertir a hexagecimal pero aun tengo la duda si javascript tiene alguna solucion mas simple a esto.

function color(objeto){
var color=objeto.style.backgroundColor
color=color.replace("rgb(","");
color=color.replace(")","");
var partes=color.split(",")
var parte1=partes[0].replace(/^\s*|\s*$/g,"");
var parte2=partes[1].replace(/^\s*|\s*$/g,"");
var parte3=partes[2].replace(/^\s*|\s*$/g,"");
a= "0123456789ABCDEF".charAt(parseInt(parte1 / 16)) + "0123456789ABCDEF".charAt(parseInt(parte1% 16));
b= "0123456789ABCDEF".charAt(parseInt(parte2 / 16)) + "0123456789ABCDEF".charAt(parseInt(parte2% 16));
c= "0123456789ABCDEF".charAt(parseInt(parte3 / 16)) + "0123456789ABCDEF".charAt(parseInt(parte3% 16));
color="#"+a+b+c;
}

Por asdmaster

14 de clabLevel



 

chrome
Citar            
MensajeEscrito el 05 Dic 2009 08:51 pm
Me parece que no hay una ruta más sencilla (con menos código). Una vez tuve este mismo problema y para darle solución cree una función. Te la dejo ya que esta solución es muy practica.

Código Javascript :

Object.prototype.bgColor = function(){
     var str = this.style['backgroundColor'];
     str = str.replace(/rgb\(|\)/g, "").split(",");
     str[0] = parseInt(str[0], 10).toString(16).toLowerCase();
     str[1] = parseInt(str[1], 10).toString(16).toLowerCase();
     str[2] = parseInt(str[2], 10).toString(16).toLowerCase();
     str[0] = (str[0].length == 1) ? '0' + str[0] : str[0];
     str[1] = (str[1].length == 1) ? '0' + str[1] : str[1];
     str[2] = (str[2].length == 1) ? '0' + str[2] : str[2];
     return ('#' + str.join(""));
 }


Despues de que agregues esa función se te extenderá una función llamada bgColor a todos los objetos que utilices. Ejemplo:

Código Javascript :

var bg = objeto.bgColor(); // valor de "bg" será el color de fondo en hexadecimal


Te recomiendo esta forma ya que NO necesitarás obtener el valor del fondo en rgb para después convertirlo a hexadecimal con otra función.

Por ivanfc0o

Claber

391 de clabLevel

3 tutoriales

Genero:Masculino  

Hardcore UI

firefox
Citar            
MensajeEscrito el 08 Dic 2009 06:08 pm
Gracias ivanfc0o me ha sido de mucha ayuda

Por asdmaster

14 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.