Wie finde ich den vertikalen Abstand vom oberen Rand der Seite zu der Stelle, an der das Element im DOM mit Javascript/jQuery vorhanden ist?
Ich habe so etwas wie
<ul>
<li>one</li>
<li>one</li>
<li>one</li>
<li>one</li>
<li class="test">one</li>
....
....
....
<li>one</li>
</ul>
Hier möchte ich zum Beispiel den vertikalen Abstand vom oberen Rand der Seite zum finden li#test
Element.
Ich habe es versucht .scrollTop()
aber es kommt immer als 0!
Verwenden .offset()
So erhalten Sie den Abstand zwischen einem Element und dem oberen Rand des Dokuments:
$("li.test").offset().top
Die Antwort von Rob W ist richtig – das gibt Ihnen den Versatz vom oberen Rand der ganzen Seite.
Wenn Sie den Versatz vom oberen Rand des sichtbaren Bildschirms erhalten möchten, sollten Sie Folgendes tun:
var viewableOffset = $("#li.test").offset().top - $(window).scrollTop();
Ich hoffe, das hilft!
Soweit ich weiss .offset()
Ermitteln Sie den Abstand zwischen der aktuellen Bildlaufposition und dem oberen Rand des Dokuments.
Sie müssen dies verwenden: $("li.test").position().top
Verwenden Sie $(element).offset().top und fügen Sie die Höhe vorhandener fester Elemente auf der Seite hinzu, um sie genauer zu machen.
11152500cookie-checkSo finden Sie den vertikalen Abstand von oben in px eines Elements mit jQueryyes
ist das was du suchst? var position = $(‘li#test’).position(); alert(position.top);
– Jonas m
15. Oktober 2011 um 15:01 Uhr