Método de llamada: colorSelect ('ID del cuadro de entrada del valor del color', 'ID del contenedor que muestra el valor del color', evento), es muy sencillo de llamar, solo onClick. Gracias a: Red Pepper
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns=" http://www.w3.org/1999/xhtml ">
<cabeza>
<meta http-equiv="Tipo de contenido" content="text/html; charset=utf-8" />
<título>Paleta</título>
<estilo>
#colorBoard{posición:absoluta; relleno:10px; ancho:256px; alto:220px; borde:#d9d9d9;}
#colorBank{ claro: ambos; borde:#d9d9d9 1px sólido; fondo:#FFF; ancho:0 0 2px 2px;
#colorBank div{ desbordamiento: oculto; alto: 12 px; ancho: 12 px; margen: 2 px 0 0; desbordamiento: oculto;
#colorViews{ancho:80px; alto:20px; flotante:izquierda;borde:#d9d9d9 1px sólido;pantalla:bloque margen: 0 10px 10px 0;}
#colorInput{ancho:70px; altura:18px; float:izquierda; familia de fuente:Verdana;tamaño de fuente:#d9d9d9 1px; sólido;margen: 0 10px 10px 0;}
#colorClose{ancho:80px; color:#999999; alto:22px; flotante:izquierda;pantalla:bloque; fondo:#FFF 1px sólido; -izquierda:#FFF 1px sólido;}
</estilo>
<guión>
función colorSelect(ahora,página,e){
if(document.getElementById("colorBoard")){
devolver;
}
//Acerca de la posición de aparición
e=e||evento;
var desplazamientopos = getScrollPos();
var l = scrollpos.l + e.clientX;
var t = scrollpos.t + e.clientY + 10;
si (l > getBody().clientWidth-253){
l = getBody().clientWidth-253;
}
//Crear DOM
var nowColor = document.getElementById(ahora);
var pageColorViews = document.getElementById(página);
var ColorHex=new Array('00','33','66','99','CC','FF');
var SpColorHex=new Array('FF0000','00FF00','0000FF','FFFF00','00FFFF','FF00FF');
var colorBank = document.createElement("div");
colorBank.setAttribute("id","colorBank");
var colorViews = document.createElement("div");
colorViews.setAttribute("id","colorViews");
var colorInput = document.createElement("entrada");
colorInput.setAttribute("id","colorInput");
colorInput.setAttribute("tipo","texto");
colorInput.setAttribute("deshabilitado","deshabilitado");
var colorClose = document.createElement("entrada");
colorClose.setAttribute("id","colorClose");
colorClose.setAttribute("valor","Cancelar");
colorClose.setAttribute("tipo","botón");
colorClose.onclick=function(){document.body.removeChild(colorBoard)};
var colorBoard =document.createElement("div");
colorBoard.id="colorBoard";
colorBoard.style.left = l+"px";
colorBoard.style.top = t+ "px";
colorBoard.appendChild(colorViews);
colorBoard.appendChild(colorInput);
colorBoard.appendChild(colorClose);
colorBoard.appendChild(colorBank);
document.body.appendChild(colorBoard);
//Salir de la paleta
para(b=0;b<6;b++){
para(a=0;a<3;a++){
para(i=0;i<6;i++){
colorItem = document.createElement("div");
colorItem.style.backgroundColor="#"+ColorHex[a]+ColorHex[i]+ColorHex[b];
colorBank.appendChild(colorItem);
}
}
}
para(b=0;b<6;b++){
para(a=3;a<6;a++){
para(i=0;i<6;i++){
colorItem = document.createElement("div");
colorItem.style.backgroundColor="#"+ColorHex[a]+ColorHex[i]+ColorHex[b];
colorBank.appendChild(colorItem);
}
}
}
para(i=0;i<6;i++){
colorItem = document.createElement("div");
colorItem.style.backgroundColor="#"+ColorHex[0]+ColorHex[0]+ColorHex[0];
colorBank.appendChild(colorItem);
}
para(i=0;i<6;i++){
colorItem = document.createElement("div");
colorItem.style.backgroundColor="#"+ColorHex[i]+ColorHex[i]+ColorHex[i];
colorBank.appendChild(colorItem);
}
para(i=0;i<6;i++){
colorItem = document.createElement("div");
colorItem.style.backgroundColor="#"+SpColorHex[i];
colorBank.appendChild(colorItem);
}
var colorItems = colorBank.getElementsByTagName("div");
for(i=0; i<colorItems.length;i++){
colorItems[i].onmouseover = función(){
a = este.estilo.fondoColor;
si(a.longitud>7){
a = formatoRgb(a);//
}
colorViews.style.background = a.toUpperCase();
colorInput.value = a.toUpperCase();
}
colorItems[i].onclick = función(){
a = este.estilo.fondoColor;
si(a.longitud>7){
a = formatoRgb(a);//
}
nowColor.value = a.toUpperCase();
pageColorViews.style.background = a.toUpperCase();
document.body.removeChild(colorBoard);
}
}
}
//función de formato
formato de funciónRgb(rgb){
rgb = rgb.replace("rgb","");rgb = rgb.replace("(","");rgb = rgb.replace()","");
formato = rgb.split(",");
a = eval(formato[0]).toString(16);
b = eval(formato[1]).toString(16);
c = eval(formato[2]).toString(16);
rgb = "#"+checkFF(a)+checkFF(b)+checkFF(c);
función checkFF(cadena){
si(cadena.longitud == 1){
cadena = cadena+""+cadena;
devolver cadena;
}demás{
devolver cadena;
}
}
volver rgb;
}
//obtenerCuerpo()
función obtenerCuerpo(){
varCuerpo;
if (typeof document.compatMode! = 'indefinido' && document.compatMode! = 'BackCompat') {
Cuerpo = documento.documentElement;
}
else if (tipo de documento.cuerpo! = 'indefinido') {
Cuerpo = documento.cuerpo;
}
devolver el cuerpo;
}
//desplazamientoPos
función getScrollPos(){
var t,l;
if (tipo de ventana.páginaYOffset! = 'indefinido'){
t = ventana.pageYOffset;
l = ventana.pageXOffset;
}
demás{
t = getBody().scrollTop;
l = getBody().scrollLeft;
}
devolver {t:t,l:l};
}
</script>
</cabeza>
<cuerpo>
<ancho de tabla="500" borde="1">
<tr>
<td><tipo de entrada="texto" valor="" id="ahoraColor" /></td>
<td><div id="pageColorViews" style="fondo:#000; ancho:30px; alto:30px;"></div></td>
<td><a href="javascript:;" onclick="colorSelect('nowColor','pageColorViews',event)">Haz clic en mí y aparecerá la paleta</a></td>
</tr>
</tabla>
</cuerpo>
</html>