2009-10-15 7 views
5

In un browser, sto cercando di determinare se il punto che rappresenta la posizione del mouse si trova in quella che io chiamo "area esterna". Ad esempio, nell'immagine allegata, l'area esterna è quella con uno sfondo blu.Determinare se una posizione del mouse è vicino ai bordi del browser

alt text http://i34.tinypic.com/r8grwz.png

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

Al 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") 

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

+0

Posso chiederti cosa stai per fare? È una specie di "scroll on edge" come nella maggior parte dei giochi RTS? –

+0

No. La pagina non scorrerà con il mouse. È più come se volessi impostare alcuni dati quando il mouse si trova nell'area esterna. – ivb

risposta

5

Non è necessario controllare se è superiore a 0 e inferiore a W, poiché la posizione x del puntatore non può essere inferiore a 0 o superiore a 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"); 
} 
4

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