So finden Sie die x-Mittelpunktkoordinaten des Elements und den zugehörigen Fensterversatz
Lesezeit: 2 Minuten
da ich bin
Ich möchte den Elementversatz ausgehend von seinen eigenen x-Zentrumskoordinaten abrufen.
wie kann ich es tun?
Eigentlich kann ich den Fensterversatz eines Elements finden, aber es ruft die Koordinaten vom Rand des Elements wie folgt ab:
var _position = $(this).offset();
Ich bin mir nicht sicher, was Sie erreichen möchten, die Position der Mitte Ihres Elements anstelle der Position ganz links oben? Außerdem ist $position keine richtige Syntax, wenn ja, fügen Sie einfach width/2 zum X und height/2 zur Höhe hinzu und Sie sind gut.
– Shai Mishali
6. November 2011 um 14:59 Uhr
@ShaiMishali Das ist die richtige Syntax. Es funktioniert perfekt. Es ist nur nicht die Konvention, Variablen in JavaScript so zu benennen.
– Irgendein Typ
6. November 2011 um 15:03 Uhr
Rob W
Sie müssen verwenden offset() Um die obere und linke Position zu erhalten, fügen Sie dann die Hälfte von hinzu height() und width() Werte für sie. Das ergibt die Zentrumskoordinaten.
var $this = $(this);
var offset = $this.offset();
var width = $this.width();
var height = $this.height();
var centerX = offset.left + width / 2;
var centerY = offset.top + height / 2;
Wenn Sie die Padding-Eigenschaft in Ihren Berechnungen berücksichtigen müssen, verwenden Sie Folgendes:
var width = $this.outerWidth();
var height = $this.outerHeight();
Wissen Sie, ob width() sich um das Auffüllen der CSS-Regel kümmert?
– da ich bin
6. November 2011 um 15:08 Uhr
Das padding Eigentum ist nicht enthalten. Wenn Sie auch die Polsterung einbeziehen möchten, verwenden Sie .outerWidth().
– Rob W
6. November 2011 um 15:09 Uhr
Dies kann jetzt auch über natives Javascript erfolgen:
let centerX = targetNode.offsetLeft + targetNode.offsetWidth / 2;
let centerY = targetNode.offsetTop + targetNode.offsetHeight / 2;
wobei targetNode das Element ist, dessen Zentrumskoordinaten Sie erhalten möchten.
Dadurch wird nur die Mitte relativ zum OffsetParent des targetNode ermittelt. Jedes übergeordnete Element (ganz oben im Baum) mit einer anderen Positionierung als statisch (Standardeinstellung) wirkt sich darauf aus.
– Staubig
8. Januar 2019 um 18:03 Uhr
Diese Methode gibt undefiniert in SVG-Objekten zurück
– Vater
31. Januar 2021 um 21:24 Uhr
12276800cookie-checkSo finden Sie die x-Mittelpunktkoordinaten des Elements und den zugehörigen Fensterversatzyes
Ich bin mir nicht sicher, was Sie erreichen möchten, die Position der Mitte Ihres Elements anstelle der Position ganz links oben? Außerdem ist $position keine richtige Syntax, wenn ja, fügen Sie einfach width/2 zum X und height/2 zur Höhe hinzu und Sie sind gut.
– Shai Mishali
6. November 2011 um 14:59 Uhr
@ShaiMishali Das ist die richtige Syntax. Es funktioniert perfekt. Es ist nur nicht die Konvention, Variablen in JavaScript so zu benennen.
– Irgendein Typ
6. November 2011 um 15:03 Uhr