2011-10-08 10 views
26

Estoy usando una superposición JPG con una opacidad reducida para un efecto, sin embargo, lo quiero como un efecto solamente y hago que el contenido debajo de ese div se pueda hacer clic. Es eso posible, gracias :)))¿La superposición de div "no se puede hacer clic" para que se pueda acceder al contenido siguiente?

Gracias por sus comentarios a todos. Creo que tendré que pensar en otra cosa porque el JPEG cubre toda la página :)

+0

Creo que el término correcto es "hit-testing"; y que generalmente es imposible en las redes. – Gleno

+1

La forma más rápida que se me ocurre es hacer esto: poner el contenido en un contenedor, hacerlo MÁS transparente, y poner el JPG detrás. –

+0

Eso es bastante inteligente Doug, gracias :) – pufAmuf

Respuesta

68

Bueno, hay pointer-events:none; pero solo pocos navegadores los navegadores modernos (y IE11) lo soportan.

https://developer.mozilla.org/en/CSS/pointer-events

+0

¡Eso ayudó MUCHO! – FreshPro

+5

puede consultar [aquí] (http://caniuse.com/#search=pointer-events) para compatibilidad con el navegador – Khalizar

+2

Todos los navegadores modernos ahora son compatibles. – Keavon

2

No, no lo es. El elemento superpuesto siempre interceptará el clic. Una posible solución consiste en vincular un evento click al elemento superpuesto, y luego obtener la posición actual del mouse & compararlo con la posición del elemento subyacente para determinar si ese elemento debe o no registrar un clic. Pero es probable que haya una forma mucho mejor de lograr esto. Sin embargo, sin ver tu código, no tengo forma de saberlo.

+1

Ahora puede usar 'pointer-events: none;' – Keavon

0

Sí, es posible

Uso pointer-events: none junto con instrucciones condicionales de CSS para EI11 (ya que no funciona en IE10 o por debajo), se puede obtener una solución compatible con navegadores para lograr este .

Utilizando AlphaImageLoader, incluso puede poner .PNG/.GIF s transparentes en la superposición div y hacer que los clics se propaguen a los elementos que se muestran a continuación.

CSS:

pointer-events: none; 
background: url('your_transparent.png'); 

EI11 condicional:

filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='your_transparent.png', sizingMethod='scale'); 
background: none !important; 

Aquí es una basic example page con todo el código.

0

un simple truco que he encontrado, aunque no muy w3c, es encapsular el div en un lapso y usar esa clase de tramo para hacer la superposición. De esta forma se podrá hacer clic en todo, y el div se comportará como un div

Cuestiones relacionadas