Ver Mensaje Individual
  #12 (permalink)  
Antiguo 12/09/2005, 11:35
furoya
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 22 años
Puntos: 317
Hola todos :

¡Sabía que había visto algo así en algún lado!.

Pero antes una aclaración. El filtro DX funciona a partir de IE5.5. Hay una sintaxis anerior que funciona en todos; creo que era filter:gray().

Bueno, en Firefox tambien se puede, pero con enormes limitaciones y de manera más compleja. No alcanza a las imágenes y hay que asignar el color a cada atributo en cada objeto.

Si alguien está viendo este mensaje con FF, puede copiar y pegar en la barra de direcciones el siguiente BML para ver el efecto en esta página

NOTA 1 :como ya se mencionó, el editor del foro agrega espacios al código, que no dejan funcionar los escripts. Si en el siguiente aparece alguno, deben borrarlos antes de dar el enter en la barra de dirección para que se ejecute correctamente.

NOTA 2 :He notado que lo que agrega es un doble espacio. Es más práctico llevar el BML a un editor de texto y usar el "Buscar y reemplazar". Aunque a mí el Notepad no me funcionó hasta que copié y pegué el doble espacio; si lo escribo no los encuentra.

Código:
 
javascript:(function(){function RGBtoHSL(RGBColor){with(Math){var R,G,B;var cMax,cMin;var sum,diff;var Rdelta,Gdelta,Bdelta;var H,L,S;R=RGBColor[0];G=RGBColor[1];B=RGBColor[2];cMax=max(max(R,G),B);cMin=min(min(R,G),B);sum=cMax+cMin;diff=cMax-cMin;L=sum/2;if(cMax==cMin){S=0;H=0;}else{if(L<=(1/2))S=diff/sum;else S=diff/(2-sum);Rdelta=R/6/diff;Gdelta=G/6/diff;Bdelta=B/6/diff;if(R==cMax)H=Gdelta-Bdelta;else if(G==cMax)H=(1/3)+Bdelta-Rdelta;else H=(2/3)+Rdelta-Gdelta;if(H<0)H+=1;if(H>1)H-=1;}return[H,S,L];}}function getRGBColor(node,prop){var rgb=getComputedStyle(node,null).getPropertyValue(prop);var r,g,b;if(/rgb\((\d+),\s(\d+),\s(\d+)\)/.exec(rgb)){r=parseInt(RegExp.$1,10);g=parseInt(RegExp.$2,10);b=parseInt(RegExp.$3,10);return[r/255,g/255,b/255];}return rgb;}function hslToCSS(hsl){return "hsl("+Math.round(hsl[0]*360)+", "+Math.round(hsl[1]*100)+"%, "+Math.round(hsl[2]*100)+"%)";}var props=["color","background-color","border-left-color","border-right-color","border-top-color","border-bottom-color"];var props2=["color","backgroundColor","borderLeftColor","borderRightColor","borderTopColor","borderBottomColor"];if(typeof getRGBColor(document.documentElement,"background-color")=="string")document.documentElement.style.backgroundColor="white";revl(document.documentElement);function revl(n){var i,x,color,hsl;if(n.nodeType==Node.ELEMENT_NODE){for(i=0;x=n.childNodes[i];++i)revl(x);for(i=0;x=props[i];++i){color=getRGBColor(n,x);if(typeof(color)!="string"){hsl=RGBtoHSL(color);hsl[1] = 0;n.style[props2[i]]=hslToCSS(hsl);}}}}})()
Lo saqué de aquí

http://www.squarefree.com/bookmarkle...or.html#no_sat

y la explicación está aquí

http://www.w3.org/TR/css3-color/#hsl-color

saludos

furoya

Última edición por furoya; 12/09/2005 a las 11:50