Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/03/2009, 12:45
glome
 
Fecha de Ingreso: abril-2005
Mensajes: 75
Antigüedad: 19 años, 10 meses
Puntos: 2
transicion de imagenes error IE

Hola

Yo como siempre con errores extraños. Hace tiempo encontré un codigo para crear una transicion entre imagenes y me funcionó perfectamente. Pero ahora ese mismo codigo lo pongo en otra web y da fallo en explorer, en mozilla va bien.

Os pongo el codigo a ver si vosotros encontrais algo:

Código HTML:
<script type="text/javascript">

//TRANSICION LOGOS
var segundos = 6 //cada cuantos segundos cambia la imagen
var dire = "imagenes" //directorio o ruta donde están las imágenes

var imagenes=new Array()
imagenes[0]="photo1.jpg"
imagenes[1]="photo2.jpg"
imagenes[2]="459.jpg"
imagenes[3]="490.jpg"

if(dire != "" && dire.charAt(dire.length-1) != "/")
{dire = dire + "/"}

var preImagenes = new Array()
	for (pre = 0; pre < imagenes.length; pre++){
		preImagenes[pre] = new Image()
		preImagenes[pre].src = dire + imagenes[pre]
	}
cont=0
function presImagen(){
	document.foto.src= dire + imagenes[cont]
	subeOpacidad()
	if (cont < imagenes.length-1)
		{cont ++}
	else
		{cont=0}
	tiempo=window.setTimeout('bajaOpacidad()',segundos*1000)
}
var iex = navigator.appName=="Microsoft Internet Explorer" ? true : false;
var fi = iex?'filters.alpha.opacity':'style.MozOpacity'
var opa = iex ? 100 : 1;
function bajaOpacidad(){
	eval(opa)
	if(opa >= 0){
		cambia()
		opa -= iex?10:0.1;
		setTimeout('bajaOpacidad()',10)
	}
	else{presImagen()}
}

function subeOpacidad(){
	opaci = iex?100:1;
	if(opa <= opaci){
		cambia()
		opa += iex?10: 0.1;
		setTimeout('subeOpacidad()',10);
	}
}
function cambia(){
	eval('document.foto.' + fi + ' = opa')
}
var tiempo
function inicio(){
	clearTimeout(tiempo)
	bajaOpacidad()
}

</script>

<body onLoad="inicio()">
				<img src="imagenes/459.jpg" name="foto" id="foto" / > 
El fallo que me da el 'document.foto.filters.alpha' es nulo o no es un objeto
El error lo da en esta zona, es decir en la linea del ultimo corchete:
Código HTML:
function subeOpacidad(){
	opaci = iex?100:1;
	if(opa <= opaci){
		cambia()
		opa += iex?10: 0.1;
		setTimeout('subeOpacidad()',10);
	}
}
Gracias