2009-08-08 13 views
18

Ist es möglich, die Position der Bildlaufleiste zu ändern, wenn der Benutzer einen bestimmten Punkt erreicht, während er eine Webseite herunterscrollt? Zum Beispiel, sobald Sie halb unten auf der Seite angekommen sind, würde die Bildlaufleiste automatisch wieder nach oben gehen.Ändern der Bildlaufposition

Antwort

29

Sie können den Prozentsatz der aktuellen Position des Rollbalkens berechnen mit Hilfe des onscroll Ereignisse, und wenn es erreicht, kann das 50% der Scroll-Position an die Spitze der Seite mit der scrollTo Funktion eingestellt werden:

window.onload = function() { 
    window.onscroll = function() { 
    var doc = document.body, 
    scrollPosition = doc.scrollTop, 
    pageSize = (doc.scrollHeight - doc.clientHeight), 
    percentageScrolled = Math.floor((scrollPosition/pageSize) * 100); 

    if (percentageScrolled >= 50){ // if the percentage is >= 50, scroll to top 
     window.scrollTo(0,0); 
    } 
    }; 
}; 

Sie können mein Beispiel here überprüfen.

+1

@CMS: Ausgezeichnete Antwort! – Josh

+0

window.scrollTo (0,0); funktioniert nicht für mich in chomre – SuperUberDuper

9

Yup, ich habe es ein paar Mal gesehen. Hier sind einige JS-Code:

window.scrollBy (0,50)

50 ist die Anzahl der Pixel Sie blättern durch wollen.

2

(window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop) sollte Ihnen die aktuelle Scroll-Position in fast jedem Browser geben.

4

Die drei Bildlauffunktionen, die Sie sich interessieren, sind window.scroll(x,y), window.scrollBy(dx,dy) und window.scrollTo(x,y).

Wie David erwähnt, benötigen Sie die Scroll-Position, um zu wissen, wo Sie sich befinden, und verwenden Sie das window.onscroll-Ereignis, um diese Berechnung auszulösen.

+1

Sind diese in allen Browsern verfügbar oder ist eine Funktionserkennung erforderlich? –

Verwandte Themen