Come posizione del mouse in un elemento di disegno quando z-index = -1
-
09-10-2019 - |
Domanda
questo sembra un problema semplice. Ho un'applicazione tela che sto scrivendo con Processing.js e voglio che appaia sullo sfondo di una pagina web. Per fare questo ho il seguente css:
#canvas-back {
position: absolute;
top: 0;
left: 0;
z-index: -1;
}
Dove tela-back è l'id di un div che contiene la tela reale. Tela stessa è impostato per avere la larghezza e l'altezza dell'elemento corpo html. Questo rende correttamente per me (la tela sullo sfondo, sotto il mio contenuto HTML), ma non posso più catturare le variabili mouseX e mouseY (cosa Processing.js usi per ottenere le coordinate del mouse).
Come posso risolvere questo problema? E 'una questione di diversa css o c'è un altro modo per ottenere coordinate del mouse in Processing.js? Grazie.
Soluzione
Ho pensato di postare la mia soluzione nel caso in cui qualcuno ha lo stesso problema. Dal momento che stavo usando jQuery sono andato avanti e impostare nuove variabili, jmouseX e jmouseY, alla posizione del mouse.
jQuery(document).ready(function(){
$(document).mousemove(function(e){
jmouseX = e.pageX;
jmouseY = e.pageY;
});
})
Poi ogni volta che ho bisogno mouseX o mouseY nei miei processingjs applicazioni Mi basta usare jmouseX e jmouseY.
Altri suggerimenti
Beh, visto che modificare lo z-index a -1 e il tuo corpo ha z-index auto, che si può pensare come 0 in questo caso, non sarà in grado di registrare un clic sul tuo tela, dal momento che è sotto il corpo. Il vostro corpo ottiene tutti i clic e così via. Devi registrarti per i tuoi eventi del mouse sul corpo stesso, in questo caso.
Se dovete ottenere scatti sulla tela, questo unica cosa che posso suggerire è quello di rendere z-index = 1 e renderlo completamente trasparente. Ma in questo caso non sarà in grado di fare clic su tutti gli elementi che sono nel corpo, come pulsanti, caselle di testo e link. In caso contrario, si dovrà eventi di cattura sul corpo e inviare manualmente i coordinats nella libreria che si sta utilizzando.