Wie finde ich mithilfe von Javascript / jQuery den vertikalen Abstand vom oberen Rand der Seite zu der Stelle, an der das Element im DOM 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>
Zum Beispiel möchte ich hier den vertikalen Abstand vom oberen Rand der Seite zum li#test
Element ermitteln.
Ich habe es versucht, .scrollTop()
aber es kommt immer als 0!
javascript
jquery
ptamzz
quelle
quelle
Antworten:
Verwenden Sie
.offset()
diese Option , um den Abstand zwischen einem Element und dem oberen Rand des Dokuments zu ermitteln:$("li.test").offset().top
quelle
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, gehen Sie folgendermaßen vor:
var viewableOffset = $("#li.test").offset().top - $(window).scrollTop();
Hoffentlich hilft das!
quelle
Soweit ich weiß,
.offset()
erhalten Sie den Abstand zwischen der aktuellen Bildlaufposition und dem oberen Rand des Dokuments.Sie müssen dies verwenden:
$("li.test").position().top
quelle
Verwenden Sie $ (element) .offset (). Top und fügen Sie die Höhe der vorhandenen festen Elemente auf der Seite hinzu, um die Genauigkeit zu erhöhen.
quelle