Domanda

In un browser, sto cercando di determinare se il punto che rappresenta la posizione del mouse è in quello che io chiamo un "zona esterna". Per esempio, nell'immagine allegata, l'area esterna è quella con uno sfondo blu.

alt text

Nel codice e l'immagine W rappresenta la larghezza della finestra del browser, mentre H rappresenta l'altezza, e x, y per la posizione del mouse

In questo momento, sto usando questo pezzo di codice per farlo:

if (((x>0 && x<w1) || (x>w2 && x<W))
    ||
    ((x>w1 && x<w2) &&
      ((y>0 && y<h1) || (y>h2 && y<H))
    ))
    console.log("we are in the outer area")

Anche se funziona così com'è, mi chiedo se c'è un modo migliore per esso?

È stato utile?

Soluzione

Non è necessario controllare se è maggiore di 0 e minore di W, poiché la posizione del puntatore x non può essere inferiore a 0 o superiore W. Lo stesso vale per l'asse Y. Il seguente dovrebbe essere sufficiente:

if((x>w2 || x<w1) || (y>h2 || y<h1)){
  console.log("We are in the outer area");
}

Altri suggerimenti

Si potrebbe avvolgere l'intera pagina in un DIV (chiamato outer) e poi collegare alla manifestazione hover.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top