Ver Mensaje Individual
  #4 (permalink)  
Antiguo 10/11/2007, 07:30
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: FireFox y Opera: Transparencias?

Hola lag_0:

Sólo por ahorrarte código (creo que hay muchisimas cosas duplicadas... demasiadas funciones. En todo caso el browser detection lo tendrías que hacer en una función llamada changeOpacityFadeXX(), que sea única para todos los navegadores.


También creo recordar que firefox soporta .style.opacity a secas.. no estoy seguro.

Bueno, mira a ver si algo como esto da errores. Es aunar las 4 instrucciones en la misma función. Te ahorras un montón de funciones y la detección de navegador:

Código PHP:
var faderray = new Array();
function 
FadeIn(objectto,limit,speed) {
  
faderray[objectto.id] = 'i';
  
setTimeout("changeOpacityFadeIn('"+objectto.id+"','"limit +"','"speed+"')",20);
}
function 
FadeOut(objectto,limit,speed) {
  
faderray[objectto.id] = 'o';
  
setTimeout("changeOpacityFadeOut('"+objectto.id+"','"limit +"','"speed+"')",20);
}
function 
getOpacity(obj) {
    
// Tenemos que mirar los 4 metodos, a ver cual contiene datos:
    // 1. object.filters.alpha.opacity
    // 2. object.style.MozOpacity*100
    // 3. object.style.KhtmlOpacity*100
    // 4. object.style.opacity*100
}
function 
changeOpacityFadeIn(objectto,limit,speed) {
  var 
object document.getElementById(objectto); 
  
actualop getOpacity(object);
  for (
i=0;i<speed;i++) {
    
actualop++; }
  if (
actualop limit) {
    
actualop limit; }
   if ((
actualop <= limit) && (faderray[objectto] == 'i')) {
     
object.filters.alpha.opacity=actualop;
     
object.style.MozOpacity=(actualop/100);
     
object.style.KhtmlOpacity=(actualop/100);
     
object.style.opacity=(actualop/100);
     
setTimeout("changeOpacityFadeIn('"+objectto+"','"limit +"','"speed+"')",20);
   }

Luego te quedaría el changeOpacityFadeOut() que funciona igual.



Un saludo
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.