Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/11/2007, 12:57
lag_0
 
Fecha de Ingreso: octubre-2007
Mensajes: 27
Antigüedad: 16 años, 6 meses
Puntos: 0
FireFox y Opera: Transparencias?

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!!!