Por varias razones, necesito poner un (mayormente) transparente <div>
sobre algún texto. Sin embargo, esto significa que no se puede hacer clic en el texto (por ejemplo, para hacer clic en enlaces o seleccionarlo). ¿Sería posible simplemente hacer que este div sea "invisible" a los clics y otros eventos del mouse?
Por ejemplo, el overlay
div cubre el texto, pero me gustaría poder hacer clic / seleccionar el texto a través del overlay
div:
<div id="container">
<p>Some text</p>
<div id="overlay" style="position: absolute; top: 0;
left: 0; width: 100%; height:100%">
... some content ...
</div>
</div>
Respuestas:
Se puede hacer usando CSS
pointer-events
. Esta propiedad es compatible con Firefox 3.6+, Chrome 2+, IE 11+ y Safari 4+. Desafortunadamente, no tengo conocimiento de una solución alternativa para varios navegadores.fuente
pointer-events: visible
parece que hará exactamente lo que quiero. ¡Gracias!Se puede hacer reafirmando el evento después de ocultar temporalmente la superposición.
Consulte la primera respuesta a esta pregunta: "superposición" HTML que permite que los clics pasen a los elementos que se encuentran detrás.
fuente
Puede hacer esto ocultando la superposición de esta manera:
fuente
Utilice este jQuery
reemplace "div" con el ID o elemento
fuente
La alternativa para deshabilitar todos los eventos (o chick) en un div es unbind () todos los eventos que están adjuntos con etiquetas de forma predeterminada
o
fuente
jquery
ahora usaoff()
a favor deunbind()
, y solo elimina los controladores, no evita que el div capture el clic.