come chiesto OP per un motivo, ecco la mia svolta:
E 'più facile da spiegare visivamente, quindi in primo luogo fuori aggiungiamo un gestore di clic per i img
s:
$('img').click(function() {
$('.pageX').text('img clicked!');
});
Fiddle
Giusto. Fai clic sull'immagine nei browser Chrome/Firefox/not-IE e non accadrà nulla poiché lo è lo div
in posizione assoluta.
Ora provalo su IE. Il gestore dei clic di img
viene attivato! Pertanto mostra che IE spinge gli elementi attraverso elementi "trasparenti" (senza contenuto o sfondo) assolutamente posizionati. Più interessante, gli elementi relativamente posizionati subiscono lo stesso problema e l'impostazione di z-index
su entrambi gli elementi non lo risolverà. Ovviamente, poiché l'immagine è sopra l'overlay, non attiverà l'evento mousemove
dell'overlay.
Una soluzione alternativa consiste nel fornire un po 'di "riempimento" alla sovrapposizione, ad esempio background:rgba(0,0,0,0)
imporrà a IE di mantenere l'elemento posizionato in modo assoluto nella parte superiore. Fiddle. Se hai bisogno di supportare i browser senza il supporto di rgba, usa una gif trasparente 1x1px come sfondo.
Non ho mai visto questo definito in nessuna specifica o ufficialmente segnalato come un bug. Non c'è alcuna logica o ragione per gli elementi posizionati in modo assoluto senza il contenuto o lo sfondo di subire questo problema di z-index, quindi lo chiamerò ancora un altro bug di IE. Forse segnalarlo sul Microsoft forums sarebbe utile.
Inoltre, relativa domanda: IE bug: absolutely-positioned element with a non-transparent background colour
fonte
2013-01-14 00:45:50
+1 interessante domanda. So che questo non è quello che hai chiesto, ma dando allo sfondo uno sfondo come 'background: rgba (0,0,0,0);' sembra aggiustarlo nell'anteprima di IE10. [fiddle] (http://jsfiddle.net/xSpqE/16/) –
Si può vedere che nella parte della casella non coperta dall'immagine, il testo si aggiorna. – kenstone
^In realtà è il contrario. La sovrapposizione copre l'immagine. La sovrapposizione con sfondo innesca 'mousemove'. Più interessante, se si aggiunge del testo all'overlay senza applicare alcuno stile di sfondo, l'evento mousemove viene attivato solo quando si sposta il mouse sopra il testo. Ancora un altro bug di IE che non ho mai visto prima. Immagino di non usare molto spesso "mousemove". –