Biorąc pod uwagę identyfikator HTML DOM, jak uzyskać pozycję elementu względem okna w JavaScript / JQuery? To nie to samo, co w odniesieniu do dokumentu ani offsetowego elementu nadrzędnego, ponieważ element może znajdować się wewnątrz elementu iframe lub innych elementów. Muszę uzyskać lokalizację na ekranie prostokąta elementu (jak w pozycji i wymiarach), tak jak jest aktualnie wyświetlany. Wartości ujemne są dopuszczalne, jeśli element jest obecnie poza ekranem (zostały przewinięte).
Dotyczy to aplikacji na iPada (WebKit / WebView). Za każdym razem, gdy użytkownik stuknie w specjalne łącze w elemencie UIWebView
, mam otworzyć widok podręczny, który wyświetla dalsze informacje o tym łączu. Widok podręczny musi wyświetlać strzałkę wskazującą z powrotem do części ekranu, która go wywołuje.
<div>
. Bierzesz pod uwagę tylko przewijanie dokumentu, ale nie przewijanie innych elementów.Wypróbuj obwiednię. To proste:
źródło
możesz to tak nazwać
Skupiam się na IE tylko zgodnie z moimi wymaganiami, ale podobnie można zrobić dla innych przeglądarek
źródło
To brzmi bardziej tak, jakbyś potrzebował podpowiedzi dla wybranego łącza. Istnieje wiele podpowiedzi jQuery, wypróbuj jQuery qTip . Ma wiele opcji i łatwo jest zmieniać style.
W przeciwnym razie, jeśli chcesz to zrobić samodzielnie, możesz użyć jQuery
.position()
. Więcej informacji na temat.position()
znajduje się na http://api.jquery.com/position/$("#element").position();
zwróci bieżącą pozycję elementu względem elementu macierzystego odsunięcia.Istnieje również jQuery .offset (); która zwróci pozycję względem dokumentu.
źródło
TL; DR
.getBoundingClientRect () wydaje się być uniwersalny . .offset () i .scrollTop () były obsługiwane od wersji jQuery 1.2. Dzięki @ user372551 i @prograhammer. Aby użyć DOM w ramce iframe, zobacz rozwiązanie @ ImranAnsari .
źródło
źródło
Spróbuj tego, aby uzyskać położenie elementu względem okna.
Zobacz więcej @ Uzyskaj pozycję elementu względem dokumentu za pomocą jQuery
źródło