Wie kann ich die XY-Koordinaten eines HTML-Elements (DIV) von JavaScript finden, wenn sie nicht explizit festgelegt wurden?Suchen X/Y eines HTML-Elements mit JavaScript
Antwort
Das kann je nach Browser und Version schwierig sein. Ich würde vorschlagen, jQuery und das Positionsplugin zu verwenden.
Das meiste Positionen-Plugin ist jetzt Teil von jQuery Core. Sie können also einfach $ (element) .offset ({relativeTo: "body"}) - und es wird Ihnen die Ober- und der linken Seite des Objekts relativ zum Körper geben. – Sugendran
Ausgezeichnet, ich habe jQuery nicht in ein paar Monaten heruntergeladen, gut zu wissen, dass sie es gerollt. – palehorse
+1 für jQuery offset – shan
Ich bin nicht sicher, wofür Sie es brauchen, und solche Dinge sind immer relativ (Bildschirm, Fenster, Dokument). Aber wenn ich brauchte, um das herauszufinden, fand ich diese Seite hilfreich: http://www.mattkruse.com/javascript/anchorposition/source.html
Und ich fand auch, dass die Tooltip Plugin jemand gemacht für jQuery hatte alle möglichen interessanten Einblick in x, y Positionierung Tricks (an seinem Ansichtsfenster schauen Klasse und die zugrunde liegende Unterstützung jQuery bietet dafür). http://bassistance.de/jquery-plugins/jquery-plugin-tooltip/
Sie können eine Bibliothek wie Prototype oder jQuery verwenden, oder Sie können this handy function verwenden:
Es gibt ein Array.
myPos = findPos(document.getElementById('something'))
x = myPos[0]
y = myPos[1]
function findPos(obj) {
var curleft = curtop = 0;
if (obj.offsetParent) {
curleft = obj.offsetLeft
curtop = obj.offsetTop
while (obj = obj.offsetParent) {
curleft += obj.offsetLeft
curtop += obj.offsetTop
}
}
return [curleft,curtop];
}
Sie sollten die Zuordnung zu quirksmode.org geben, diese Funktion sieht sehr vertraut. – pilsetnieks
Hier ist, wie ich es tun:
// Based on: http://www.quirksmode.org/js/findpos.html
var getCumulativeOffset = function (obj) {
var left, top;
left = top = 0;
if (obj.offsetParent) {
do {
left += obj.offsetLeft;
top += obj.offsetTop;
} while (obj = obj.offsetParent);
}
return {
x : left,
y : top
};
};
Ich denke, ich bevorzuge Ihre Idee, ein Objekt über Peter-Paul Kochs Wahl zu stellen, ein Array in seiner ursprünglichen Lösung zurückzugeben. – cssimsek
Für was es wert ist, ist hier eine rekursive Version:
function findPos(element) {
if (element) {
var parentPos = findPos(element.offsetParent);
return [
parentPos.X + element.offsetLeft,
parentPos.Y + element.offsetTop
];
} else {
return [0,0];
}
}
parentPos.X sollte parentPos [0] sein, parentPos.Y sollte parentPos sein [1] – Noah
Sie zwei Objekte, die die Element.prototype
hinzufügen können, um oben/links zu bekommen von irgendeinem Element.
window.Object.defineProperty(Element.prototype, 'documentOffsetTop', {
get: function() { return this.offsetTop + (this.offsetParent ? this.offsetParent.documentOffsetTop : 0); }
});
window.Object.defineProperty(Element.prototype, 'documentOffsetLeft', {
get: function() { return this.offsetLeft + (this.offsetParent ? this.offsetParent.documentOffsetLeft : 0); }
});
Hier ist eine Demo, die Ergebnisse zu jQuery Vergleich offset().top
und .left
: http://jsfiddle.net/ThinkingStiff/3G7EZ/
- 1. XY Plotten mit Java
- 2. Suchen und Ersetzen eines Teilstrings Javascript
- 3. Suchen von Text Kind eines Elements mit JavaScript
- 4. Suchen eines Arrays mit Schleife
- 5. Wie funktioniert Lazy Loading mit den Yandex HtmlElements?
- 6. raise javascript events oder erhalte ein Objekt von XY coords
- 7. Suchen Sie den Index eines Ajax-Anfrage-Element in Javascript
- 8. Javascript Suchen und Ersetzen
- 9. XY-Koordinaten in Bitmap
- 10. Aufnahme in XY-Richtung
- 11. eine Variable in der xy Mit Art
- 12. Suchen eines UIImage-Dateityps
- 13. Include und iterieren über ähnliche HtmlElements Blöcke in Seite
- 14. Get XY Werte von Punktgeometrie oder Geographie
- 15. Konvertieren XY-Werte in RGB
- 16. Amchart XY x-Achse Schritt
- 17. Breiten- und Längengrad aus XY ermitteln
- 18. eines Dokuments Eltern iframe in jQuery Suchen
- 19. Aufnahme XY-Koordinaten von Pixel onclick
- 20. Erstellen eines Streudiagramms mit Reihen aus Zeilenwerten und XY-Werten aus zwei anderen Zeilen
- 21. Erstellen eines Ajax.ActionLink mit JavaScript
- 22. Erstellen eines Eingabefeldes mit Javascript
- 23. Löschen eines Textfelds mit Javascript
- 24. Scrollen eines iframe mit JavaScript?
- 25. Umdrehen eines Div mit Javascript
- 26. Update eine XY-Linie JFreeChart dynamisch mit verschiedenen Aktualisierungsraten
- 27. Javascript Array für partiellen String suchen
- 28. Intellij Javascript mehrzeilige Struktur Suchen und Ersetzen
- 29. Wie durch ein Array in Javascript suchen?
- 30. wie man vermeiden CSS-Eigenschaft suchen mit Jquery oder Javascript
als Duplikat geschlossen, wie pro http://meta.stackexchange.com/questions/147643/should-i-vote-to- close-a-duplicate-question-even-though-es-viel-neuere-und-ha – user123444555621