He hecho un script de Fade In y Fade Out con transparencias que en I.E funciona muy bien pero no consigo que funcione en Firefox ni en Opera ni Safari... Ahí va por si os interesa usarlo o se os ocurre la fantastica idea de como hacerlo funcionar (me haríais un gran favor):
Código PHP:
var CountFadeID = new Array();
function FadeInEffect(FadeObject,max,mult) {
max = max+1;
document.getElementById(FadeObject.id).filters[0].opacity=(document.getElementById(FadeObject.id).filters[0].opacity+mult);
if ((document.getElementById(FadeObject.id).filters[0].opacity < max) && (CountFadeID[FadeObject.id] == 'in')) {
setTimeout('FadeInEffect('+FadeObject.id+','+(max-1)+','+mult+')', 5); }
}
function SetFadeIn(FadeObject,max,mult) {
CountFadeID[FadeObject.id] = 'in';
setTimeout('FadeInEffect('+FadeObject.id+','+max+','+mult+')', 5);
}
function FadeOutEffect(FadeObject,max,mult) {
max = max-1;
document.getElementById(FadeObject.id).filters[0].opacity=(document.getElementById(FadeObject.id).filters[0].opacity-mult);
if ((document.getElementById(FadeObject.id).filters[0].opacity > max) && (CountFadeID[FadeObject.id] == 'out')) {
setTimeout('FadeOutEffect('+FadeObject.id+','+(max+1)+','+mult+')', 5);
}
}
function SetFadeOut(FadeObject,max,mult) {
CountFadeID[FadeObject.id] = 'out';
setTimeout('FadeOutEffect('+FadeObject.id+','+max+','+mult+')', 5);
}
Implementación:
Código PHP:
<img src="a.gif" id="imagen1" onmouseover="javascript:SetFadeIn(this,'100','5');" onmouseout="javascript:SetFadeOut(this,'65','5');" style="filter:alpha(opacity=35);-moz-opacity:.100;opacity:.100;" />
Las 2 ultimas cosas del style son para que se vea opaco o no en firefox y demás, si las bajais se verá más transparente lo único que el fade no lo hará...
Y respecto a las variables de la función... En la In, el máximo de opaco, en la out el minimo de transparente... y la segunda es el "multiplicador" contra más alto sea más prisa se da en llegar al minimo/maximo asignado...
El efecto fade in fade out queda muy bien y por más que busqué no encontré nada util ya hecho para todos los navegadores...
Ah y creo que en FF no funciona tampoco el setTimeout tal y como está puesto por que no pasa bien el objeto o no lo tengo muy claro... pero como no me funcionaba de ninguna forma la transparencia lo dejé estar.. A ver si alguien se anima
Un saludo!!!