[Javascript] Passa gli eventi del mouse attraverso elementi posizionati in modo assoluto


Answers

Se tutto ciò di cui hai bisogno è il mouse, potresti essere in grado di accontentarti del metodo document.elementFromPoint , da:

  1. rimuovere lo strato superiore sul mouse,
  2. passare le coordinate y dall'evento al metodo document.elementFromPoint per ottenere l'elemento sottostante, quindi
  3. ripristinare lo strato superiore.
Question

Sto tentando di catturare gli eventi del mouse su un elemento con un altro elemento assolutamente posizionato sopra di esso.

In questo momento, gli eventi sull'elemento posizionato in modo assoluto lo colpiscono e diventano bolle al suo genitore, ma voglio che siano "trasparenti" a questi eventi del mouse e li inoltrino a qualsiasi cosa ci sia dietro. Come dovrei implementarlo?




Se si conoscono gli elementi che richiedono eventi del mouse e se l'overlay è trasparente, è possibile impostare lo z-index su un valore superiore rispetto all'overlay. Tutti gli eventi dovrebbero ovviamente funzionare in quel caso su tutti i browser.




Il motivo per cui non si riceve l'evento è perché l'elemento posizionato in modo assoluto non è figlio dell'elemento che si desidera "fare clic" (div blu). Il modo più pulito a cui riesco a pensare è quello di mettere l'elemento assoluto come figlio di quello che vuoi cliccato, ma suppongo che tu non possa farlo o che non avresti postato questa domanda qui :)

Un'altra opzione sarebbe quella di registrare un gestore di eventi click per l'elemento assoluto e chiamare il gestore dei clic per il div blu, facendo in modo che entrambi lampeggino.

A causa del modo in cui gli eventi esplodono attraverso il DOM non sono sicuro che ci sia una risposta più semplice per te, ma sono molto curioso che qualcun altro abbia qualche trucco che non conosco!