2010-07-27 14 views
9

¿Hay alguna forma en JavaScript para propagar eventos a elementos ocultos por otro? Porque tengo un elemento con position: absolute que oscurece elementos que no son elementos principales del mismo, pero me gustaría que los eventos click, mousemove y mousout pasen a través de este elemento. La solución puede ser específica de Mozilla Firefox, porque la usaré en un complemento de Firefox.propagar eventos de mouse a elementos ocultos

Respuesta

17

Quizás la propiedad CSS pointer-events:none; es lo que busca. Se usa en la página de inicio de Twitter, por ejemplo, para que pueda hacer clic en el texto en los "temas de tendencias" también cuando se superpone mediante gráficos fundidos.

+0

Gracias. Eso es lo que estaba buscando. – panzi

1

Puede usar getElementsByTagName ("*") para obtener todos los elementos en la página. Usando una función de búsqueda de posición mundial, puede obtener la posición de un elemento relativo a la esquina superior izquierda de la página. Ahora puede usar offsetWidth, offsetHeight y la posición del mouse [browser specific, lol] para verificar si el cursor está sobre su elemento.

Si el cursor está sobre su elemento, active el evento.

La función anterior se debe conectar a window.onmousedown/onmouseup/onmousemove/lo que sea

+0

Sí, esperaba que hubiera algo más fácil y rápido. Tal vez sería mejor poner un '' invisible con un mapa de imagen asociado delante del '' (ese es el elemento oculto). Hmmm. – panzi

+0

¿Cómo se puede disparar el evento original en el navegador? Por ejemplo, con jQuery solo puede activar manejadores jQuery ... no eventos dom originales – arty

Cuestiones relacionadas