Wie erhalte ich die Browser-Bildlaufposition in jQuery?


73

Ich habe ein Webdokument mit Bildlauf. Ich möchte den Wert der aktuellen Bildlaufposition in Pixel erhalten. Wenn ich die folgende Funktion ausführe, wird der Wert Null zurückgegeben. Wie kann ich das machen?

<script type="text/javascript" src="js/jquery-1.7.2.js"></script>
<script type="text/javascript" src="js/jquery.mousewheel.min.js"></script>
<script type="text/javascript">
    $(function (){
        $('#Eframe').on("mousewheel", function() {
            alert(document.body.scrollDown)
        }
    })
</script>

Sie möchten die Anzahl der Pixel erhalten, die ein Benutzer gescrollt hat? nur das erste Mal, wenn sie scrollen? richtig ?
Manse

Antworten:


115

Da Sie anscheinend jQuery verwenden, finden Sie hier eine jQuery-Lösung.

$(function() {
    $('#Eframe').on("mousewheel", function() {
        alert($(document).scrollTop());
    });
});

Hier gibt es nicht viel zu erklären. Wenn Sie möchten, finden Sie hier die jQuery-Dokumentation .


3
Dies gibt mir nur 0 die ganze Zeit
Pomster

@Pomster yep. Hast du jemals eine Lösung gefunden?
r3wt

2
@Pomster @ r3wt Sie müssen sicherstellen, dass Sie die Funktion auf das zu scrollende Dokumentobjekt einstellen. Wenn also die Schriftrolle auf einigen ist <div id="foo">..., wäre die Syntax $("#foo").scrollTop().
Steven Mann

27

Es ist besser zu verwenden $(window).scroll()als$('#Eframe').on("mousewheel")

$('#Eframe').on("mousewheel") wird nicht ausgelöst, wenn Benutzer manuell mit den Aufwärts- und Abwärtspfeilen in der Bildlaufleiste scrollen oder die Bildlaufleiste selbst greifen und ziehen.

$(window).scroll(function(){
    var scrollPos = $(document).scrollTop();
    console.log(scrollPos);
});

Wenn #Eframeein Element mit overflow:scrolldarauf ist und Sie möchten, dass es die Bildlaufposition ist. Ich denke, das sollte funktionieren (ich habe es aber nicht getestet).

$('#Eframe').scroll(function(){
    var scrollPos = $('#Eframe').scrollTop();
    console.log(scrollPos);
});

9

Reines Javascript kann!

var scrollTop = window.pageYOffset || document.documentElement.scrollTop;

1
In meinem Fall scrollTopgibt mir das Scrollen nach der Seitenaktualisierung durch den Browser, was genau das war, was ich wollte
Hassan Tareq
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.