Cambio de la barra de desplazamiento Posición
-
12-09-2019 - |
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.
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.