Ver Mensaje Individual
  #9 (permalink)  
Antiguo 30/06/2007, 08:57
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 2 meses
Puntos: 45
Re: cambiar el backgroundPosition en IE va lento

Bueno, ya he investigado cómo funciona esto del burbujeo de eventos y tal... es algo complicado.

Cambios que he hecho (link actualizado):

1) Ya no se recarga el fondo al hacer onmouseover. El fondo se carga en el onload de la página (posicionado en -1000,-1000) y en el onmouseover únicamente se re-posiciona.

2) En el mueveBackground he probado a poner background-repeat="no-repeat"; pero no tiene ningún efecto, así que lo he dejado tal cual (comentado).

3) En el onmouseout de la capa, que antes no había nada: Ahora detecto dónde estábamos (current) y a dónde hemos salido (related) como he podido averiguar de kusor. Si entramos y salimos del mismo elemento (current==related) ó si related está contenido en current (nodo hijo: texto o DIV con texto), entonces impedimos que se active el onmouseover (porque no hemos salido, luego no podemos entrar).
Si ocurre lo contrario (current no es related, ni está uno contenido en el otro) entonces significa que hemos salido, y activo el onmouseover.

Se supone que con el cambio 3 se ha solucionado lo del burbujeo, que ya no se sale ni se entra mil veces, solo se entra las veces que realmente se entra, y se sale muchas veces pero sólo se da por válida (mandar el fondo a -1000,-1000) si realmente se sale.



Pero esto no ha servido absolutamente de nada . FF2 igual de bien, IE6 igual de mal.



He puesto las capas con borde y he mandado ir escribiendo lo que se va haciendo (log). Se puede comprobar que si se mueve el ratón dentro de la capa, sin ir a los textos (esa parte intermedia que dicta el padding:30px), el script también funciona mal. Es decir, es un problema más gordo que el burbujeo de eventos, debe ser un problema de navegador.



Aunque gracias por la ayuda MaBoRaK. Creo que lo he hecho como debía hacerlo. Si se te ocurren más cosas las probaré.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.