Heim > Web-Frontend > js-Tutorial > Hauptteil

Sichere Ersatzmethode für die jQuery.position()-Methode, die den value_jquery nicht erhalten kann

WBOY
Freigeben: 2016-05-16 16:09:56
Original
1315 Leute haben es durchsucht

Der Aufruf der Methode jQuery.position() gibt die Position relativ zum übergeordneten Element zurück. In der offiziellen Dokumentation von jQuery wird beschrieben, dass sie sich von der Methode .offset() unterscheidet. while .position() gibt die Position relativ zum übergeordneten Element zurück.

Aber tatsächlich haben wir während der Verwendung festgestellt, dass der von .position() zurückgegebene Wert häufig 0 ist. Aber die Tatsache ist nicht 0. Besonders im Google Chrome- und IE-Browser. Firefox hat dieses Problem nicht.

Der Grund dafür ist, dass der Browser bei Webkit-basierten Browsern (Google Chrome und Safari-Browser) nur dann auf die Höhe und Breite dieser Elemente zugreifen kann, wenn Elemente (Bilder, Flash usw.) vollständig geladen sind. Firefox kann auf diese Eigenschaften zugreifen, nachdem das DOM geladen wurde, und muss nicht die volle Größe des Elements kennen. Nicht so bei Google Chrome. Wenn Sie daher in Browsern wie Google/IE .position() verwenden möchten, um den Offset eines Elements abzurufen, erhalten Sie häufig den Anfangswert: 0.

Eine Abhilfe besteht darin, Ihren .position()-Aufruf nach der Auslösung des $(window).load()-Ereignisses zu platzieren, und nicht nach dem $(document).ready-Ereignis. Diese Methode ist jedoch möglicherweise nicht zuverlässig.

Eine andere Alternative ist die Verwendung von .offset() zum Konvertieren von:

Code kopieren Der Code lautet wie folgt:

jQuery.fn.aPosition = function() {
ThisLeft = this.offset().left;
ThisTop = this.offset().top;
ThisParent = this.parent();

parentLeft = thisParent.offset().left;
parentTop = thisParent.offset().top;

zurück {
           left: thisLeft-parentLeft,
         top: thisTop-parentTop
};
};


Obwohl dadurch redundanter Code generiert wird, ist die Verwendung wesentlich zuverlässiger und sicherer.
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage