2009-08-08 38 views
18

È possibile modificare la posizione della barra di scorrimento quando l'utente raggiunge un determinato punto scorrendo verso il basso una pagina Web? Ad esempio, una volta raggiunta la metà della pagina, la barra di scorrimento si sposta automaticamente verso l'alto.Modifica posizione barra di scorrimento

risposta

29

È possibile calcolare la percentuale della posizione corrente della barra di scorrimento utilizzando l'evento onscroll, e se raggiunge il 50% la posizione di scorrimento può essere impostata per la parte superiore della pagina con la funzione scrollTo:

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); 
    } 
    }; 
}; 

È possibile controllare il mio esempio here.

+1

@CMS: risposta eccellente! – Josh

+0

window.scrollTo (0,0); non funziona per me in Chomre – SuperUberDuper

9

Sì, l'ho visto un paio di volte. Ecco il codice JS:

window.scrollBy (0,50)

50 è la quantità di pixel che si desidera scorrere da.

2

(window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop) dovrebbe darti la posizione di scorrimento corrente in quasi tutti i browser.

4

Le tre funzioni di scorrimento che ti interessano sono window.scroll(x,y), window.scrollBy(dx,dy) e window.scrollTo(x,y).

Come menzionato da David, avrete bisogno della posizione di scorrimento per sapere dove vi trovate e utilizzare l'evento window.onscroll per attivare questo calcolo.

+1

Sono disponibili su tutti i browser o sono necessarie alcune funzioni di rilevamento? –

Problemi correlati