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é.