Pregunta

¿Es posible cambiar la posición de la barra de desplazamiento cuando el usuario llega a un cierto punto el desplazamiento hacia abajo una página web? Por ejemplo, una vez que llegó a la mitad hacia abajo por la página de la barra de desplazamiento se movería automáticamente de nuevo a la parte superior.

¿Fue útil?

Solución

Se puede calcular el porcentaje de la posición actual de la barra de desplazamiento mediante el onscroll evento, y si alcanza el 50% de la posición de desplazamiento se puede ajustar a la parte superior de la página con el función 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); 
     } 
   }; 
};

Puede comprobar mi ejemplo aquí .

Otros consejos

Sí, lo he visto un par de veces. Aquí hay un código JS:

window.scrollBy(0,50)

50 es la cantidad de píxeles que desea desplazarse por.

Las tres funciones de desplazamiento que querrá que preocuparse son window.scroll(x,y), window.scrollBy(dx,dy) y window.scrollTo(x,y).

Como David mencionó que necesitará la posición de desplazamiento para saber dónde se encuentra y utilizar el evento window.onscroll a disparar este cálculo.

(window.pageYOffset || || document.body.scrollTop document.documentElement.scrollTop) debe darle la posición de desplazamiento actual en casi cualquier navegador.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top