2017-04-09 1 views
0

Stellen Sie sich vor, ich habe eine Website, die dreimal die Ansichtsfenster Höhe überläuft. Ich kann auf dieser Website von oben nach unten blättern.Verschieben eines Div relativ zu welcher vertikalen Position Sie sind auf einer scrollbaren Seite

Ist es möglich, ein Div zu erstellen, das sich von der Oberseite des Ansichtsfensters nach unten im Verhältnis zur Menge der gescrollten Seite bewegt?

Beispiel - Würde jemand etwas dagegen tun, mir etwas wie this zu erreichen? Nicht sicher, wie es gemacht wurde.

Edit:

var scrollValue; 
    var percent; 

    var body = document.body, 
     html = document.documentElement; 

    var height = Math.max(body.scrollHeight, body.offsetHeight, 
    html.clientHeight, html.scrollHeight, html.offsetHeight); 

    $(document).ready(function(){ 
     $("button").click(function(){ 
        scrollValue = $("body").scrollTop(); 
        percent = (scrollValue/height) * 100; 
        alert(percent); 
     }); 
    }); 
+0

und ... Was Problem Sie konfrontiert sind? – bhansa

+0

Es tut mir leid, wenn es nicht klar war - ich bin mir nicht sicher, wie man ein div im Verhältnis zu der Seite, auf der gescrollt wurde, verschiebt. @Bhansa –

Antwort

1

können Sie versuchen, jQuery scrollTop() verwenden. Siehe die demo at jquery.com.

Idee: Wenn Sie die beiden Arten der Nutzung dieser Funktion (mit/ohne args) verstehen können Sie diese gleiche Funktion verwenden, um die aktuelle Bildlaufposition des benutzerdefinierten Scrollbar zu bekommen, dann auslösen Ihre div gescrollt wird in die relative Scroll-Position.

Alternative Aufgabe: Wenn Sie die benutzerdefinierte Scrollbar auf Mausrad bewegen zu bewegen, empfehle ich jquery mousewheel plugin zu verwenden -

$(window).mousewheel(function(turn, delta) { 

    if (delta == 1) // going down 
    else //going up 

    // all kinds of code 

    return false; 
}); 
+0

Danke! Ich habe eine Demo erstellt, wo das div sich mit einem Klick auf den Punkt bewegt, an dem es sein sollte ... eine Idee, wie es aktualisiert wird, wenn eine Scroll-Aktion stattfindet? @Partharajdeb –

+0

Überprüfen Sie das Update. –

+0

Sehen Sie sich den Code an, den ich in meine bearbeitete Frage eingefügt habe. Ich nehme die Position der aktuellen Bildlaufleiste auf Knopfdruck, finde die Höhe der Seite und teile die Position der Bildlaufleiste durch die gesamte Seitenhöhe, um einen Prozentsatz auf der Seite zu geben, wo die Bildlaufleiste sitzt. Ich möchte jedoch, dass diese automatisch aktualisiert wird, wenn der Benutzer scrollt, da ein Buttonpress sehr unpraktisch ist. Würde ich nur Timeout verwenden müssen, um die Schleife tausende Male pro Sekunde abzufeuern? Das scheint nicht richtig zu sein. –

Verwandte Themen