2012-02-15 29 views
7

Czy istnieje sposób, aby uzyskać współrzędne prostokąta elementu DOM z Javascriptem?Czy istnieje sposób na uzyskanie obwiedni (w pikselach) elementu DOM?

Oczywiście mogę obliczyć go z różnych właściwości CSS: width, height i tak dalej.

Pytam, ponieważ istnieje wiele innych platform graficznych, które zapewniają to jako metodę. Na przykład, najwyraźniej można to zrobić w XUL według this post, która opisuje metodę getBoundingClientRect().

(Moim celem jest sprawdzenie, czy dwa elementy nakładają się na siebie.)

+0

Czy to duplikat stanowisko lub stanowiska te nie są rozwiązania na swoje pytanie? - http://stackoverflow.com/questions/4230029/jquery-javascript-collision-detection - http://stackoverflow.com/questions/2440377/javascript-collision-detection Kiedy to przeczytałem, brzmiały podobnie. Miej nadzieję, że ta pomoc. – shanabus

Odpowiedz

1

Powiedzmy, że elementem DOM miał identyfikator myElement.

document.getElementById("myElement").offsetLeft; //Left side of box 
document.getElementById("myElement").offsetTop; //Top side of box 
document.getElementById("myElement").offsetLeft 
    + document.getElementById("myElement").offsetWidth; //Right side of box 
document.getElementById("myElement").offsetTop 
    + document.getElementById("myElement").offsetHeight; //Bottom side of box 

Dla dolnej i prawej strony, kod w zasadzie dodaje szerokość lub wysokość obwiedni do lewej lub górnej strony.

Jeśli chciał, można zdefiniować document.getElementById("myElement") raz i użyć odniesienia, co następuje:

var myElement = document.getElementById("myElement"); 
myElement.offsetLeft; //Left side of box 
myElement.offsetTop; //Top side of box 
myElement.offsetLeft + myElement.offsetWidth; //Right side of box 
myElement.offsetTop + myElement.offsetHeight; //Bottom side of box 
Powiązane problemy