Potrzebuję uzyskać współrzędne X, Y (względem góry/lewej strony dokumentu) dla elementu DOM. Nie mogę zlokalizować żadnych wtyczek ani właściwości lub metody jQuery, które mogą mi je przekazać. Mogę uzyskać górny i lewy element DOM, ale może to być względne w stosunku do bieżącego kontenera/rodzica lub do dokumentu.jQuery x y współrzędne dokumentu obiektu DOM
Odpowiedz
można użyć
Dimensions wtyczki
[przestarzałe ... zawarte w jQuery 1.3.2 i nowsze]
offsetu()
Get prąd przesunięcia pierwszego dopasowanego elementu w pikselach względem dokumentu .pozycji()
pobiera górną i lewe położenie elementu w stosunku do jego przesunięcia rodzica.
wiedząc o tym, czym jest to łatwe ... (używając mojego trochę svg project w postaci example page)
var x = $("#wrapper2").offset().left;
var y = $("#wrapper2").offset().top;
console.log('x: ' + x + ' y: ' + y);
wyjście:
x: 53 y: 177
nadzieję, że pomoże to, czego szukasz.
oto obraz offsetu() i pozycja()
użyciu XRay
użyciu Web Developer pasek
offset funkcja zrobi to za Ciebie.
Oto przykład dają:
var p = $("p:last");
var offset = p.offset();
p.html("left: " + offset.left + ", top: " + offset.top);
Moje rozwiązanie jest plugin z "obejścia": + D. Ale działa!
jQuery.fn.getPos = function(){
var o = this[0];
var left = 0, top = 0, parentNode = null, offsetParent = null;
offsetParent = o.offsetParent;
var original = o;
var el = o;
while (el.parentNode != null) {
el = el.parentNode;
if (el.offsetParent != null) {
var considerScroll = true;
if (window.opera) {
if (el == original.parentNode || el.nodeName == "TR") {
considerScroll = false;
}
}
if (considerScroll) {
if (el.scrollTop && el.scrollTop > 0) {
top -= el.scrollTop;
}
if (el.scrollLeft && el.scrollLeft > 0) {
left -= el.scrollLeft;
}
}
}
if (el == offsetParent) {
left += o.offsetLeft;
if (el.clientLeft && el.nodeName != "TABLE") {
left += el.clientLeft;
}
top += o.offsetTop;
if (el.clientTop && el.nodeName != "TABLE") {
top += el.clientTop;
}
o = el;
if (o.offsetParent == null) {
if (o.offsetLeft) {
left += o.offsetLeft;
}
if (o.offsetTop) {
top += o.offsetTop;
}
}
offsetParent = o.offsetParent;
}
}
return {
left: left,
top: top
};
};
Zastosowanie:
var p = $("#wrapper2").getPos();
alert("top:"+p.top+"; left:"+p.left);
wiesz że istnieją struktury, więc nie musimy ponownie pisać kodu, prawda? – balexandre
frameworks są świetne, dopóki nie trzeba pisać usercriptu. Lub gdy chcesz napisać poprawkę do jQuery; nadal istnieją powody, aby znać javascript. –
- 1. Wyodrębnij współrzędne X i Y ze String
- 2. javascript pobiera współrzędne X i Y po kliknięciu myszy
- 3. Uzyskaj współrzędne ekranu elementu DOM
- 4. Dziwactwo rubowe: x == y && [x, y] .uniq == [x, y]
- 5. Uzyskaj nowe współrzędne x, y punktu na obróconym obrazku
- 6. Czy można uzyskać współrzędne X i Y dotyku?
- 7. Śledzenie systemu Android współrzędne X, y rysowanie ze ścieżki
- 8. Odzyskaj współrzędne X i Y przycisku w Androidzie?
- 9. Jak ustawić współrzędne x, y okna w Wayland?
- 10. geo współrzędne geograficzne (lat, lng) do mapowania (x, y)
- 11. Jak uzyskać rzeczywiste współrzędne światowe (x, y, z) z odrębnego obiektu za pomocą urządzenia Kinect
- 12. x, y = getPos() vs. (x, y) = getPos()
- 13. Jak znaleźć węzeł DOM w danej pozycji (X, Y)? (Hit test)
- 14. Jak zmienić x, y pochodzenie płótna w lewym dolnym rogu i odwrócić współrzędne y?
- 15. Obiekt DOM JavaScript do obiektu jQuery
- 16. jQuery selektor atrybutu: [x = y] lub [x = z]
- 17. Kiedy używać std :: hypot `(x, y)` `nad std :: sqrt (x * x + y * y)`
- 18. Jak zrobić pętlę nieskończoną z "x <= y && x > = y && x! = Y"?
- 19. Kombinacje trzech liczb dodatnich x, y, z tak, że x + y, x-y, y + z, y-z, x + z i x-z są idealnymi kwadratami
- 20. Dodawanie wielu elementów jQuery/DOM do pojedynczego obiektu jQuery
- 21. Znajdź X/Y elementu HTML z JavaScript
- 22. Uzyskiwanie bieżącego obiektu skryptu DOM w żądaniu ajaxowym (jquery)
- 23. Dlaczego argumenty atan2 Y, X zamiast X, Y?
- 24. (x: y) operator Julia
- 25. Przekazywanie obiektu dokumentu do pracownika WWW
- 26. znajdź lokalizację {x, y} tekstu w uilabel
- 27. Dlaczego javac nie akceptuje `x = x +++++ y`?
- 28. Dziwny kod w źródłach jQuery: var! == var? x: y;
- 29. JavaScript/jquery, uzyskaj wszystkie lokalizacje div (x, y). Przekazywanie dotyku?
- 30. Jak korzystać z dokumentu DOM php?
Patrz: http://docs.jquery.com/Plugins/dimensions „Przestarzałe: Jak jQuery 1.2.6, wymiary plugin został włączony do rdzenia. Możesz zobaczyć pełną dokumentację w kategorii CSS. " plus, to tylko względne pozycje – DMCS
jeśli uruchomisz ten kod na tej stronie projektu, możesz zweryfikować, że nie jest względny, ale są to wartości bezwzględne. – balexandre
Wygląda na to, że rozwiązały problemy w nowszej wersji jQuery. Wydaje mi się, że użycie 1.3.2 daje X, y współrzędnych dokumentu, tak jak miałem nadzieję. I przetestowałem to w IE7, FF3 i Safari3 i wszystkie wydają się zachowywać poprawnie – DMCS