Domanda

E 'possibile modificare la posizione della barra di scorrimento quando l'utente raggiunge un certo punto scorrendo verso il basso una pagina web? Per esempio una volta raggiunto a metà strada in basso nella pagina la barra di scorrimento si muoverebbe automaticamente verso l'alto.

È stato utile?

Soluzione

È possibile calcolare la percentuale della posizione corrente della barra di scorrimento utilizzando il onscroll evento, e se raggiunge il 50% la posizione di scorrimento può essere impostata per la parte superiore della pagina con il 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 qui .

Altri suggerimenti

Yup, ho visto un paio di volte. Ecco il codice JS:

window.scrollBy(0,50)

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

Le tre funzioni di scorrimento si vorrà te stesso con preoccupazione sono window.scroll(x,y), window.scrollBy(dx,dy) e window.scrollTo(x,y).

Come accennato David avrete bisogno la posizione di scorrimento di sapere dove siete e utilizzare l'evento window.onscroll di sparare questo calcolo.

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top