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