Estoy construyendo un sitio web que estoy publicando con div
s. Cuando actualizo la página después de desplazarla a la posición X, la página se carga con la posición de desplazamiento como X.
¿Cómo puedo forzar que la página se desplace hacia arriba al actualizar la página?
Lo que puedo pensar es en algunos JS o jQuery ejecutados en
onLoad()
función de la página para CONFIGURAR el desplazamiento de las páginas hacia arriba. Pero no sé cómo podría hacer eso.Una mejor opción sería si hay alguna propiedad o algo para cargar la página con su posición de desplazamiento por defecto (es decir, en la parte superior) que será como cargar la página , en lugar de actualizar la página .
Respuestas:
Puede hacerlo utilizando el método scrollTop en DOM listo :
fuente
Para un simple llano implementación de JavaScript:
fuente
Safari 11.0.3
y funciona bien para mí, ¿cuál estás usando?return
?document.querySelector('html').style.scrollBehavior = '';
puede ser necesario. Si se estableció ensmooth
, es posible que no llegue a la parte superior antes de que la página se vuelva a cargar.La respuesta aquí no funciona para safari, document.ready a menudo se dispara demasiado pronto.
Debería usar el
beforeunload
evento que le impide formar haciendo algosetTimeout
fuente
Nuevamente, la mejor respuesta es:
(eso no es jQuery, busque si está buscando el método JQ)
EDITAR: un pequeño error es "onbeforunload" :) Chrome y otros navegadores "recuerdan" la última posición de desplazamiento antes de la descarga, por lo que si establece el valor en 0,0 justo antes de la descarga de su página, recordarán 0,0 y ganaron No vuelvas a donde estaba la barra de desplazamiento :)
fuente
document.documentElement.scrollTop
trabajar. Aunque normalmente uso ambos.Verifique la
.scrollTop()
función jQuery aquíSe vería algo así como
fuente
También puedes probar
Si desea desplazarse en la posición x, puede cambiar el valor de 0 a x.
fuente
En lugar de
location.reload()
, simplemente uselocation.href = location.href
. No se desplazará a la posición anterior como lolocation.reload()
hace.Nota: Esto no se volverá a cargar si hay algún # en la URL
fuente
Ponga el script anterior en la
<head>
etiqueta de su html. ¡No estoy seguro de cómo se comportan las aplicaciones de una sola página! Pero seguro funciona como encanto en las páginas normales.fuente
La respuesta aquí (desplazarse
$(document).ready
) no funciona si hay un video en la página. En ese caso, la página se desplaza después de que se active este evento, anulando nuestro trabajo.La mejor respuesta debería ser:
fuente
no funcionó para mí, ya que Google Chrome simplemente se desplazaría hacia abajo una vez que la página terminara de cargarse. Lo que usé fue
// Esto carga la página con un # al final. Por lo tanto, siempre se cargará en la parte superior.
fuente
Para restablecer la ventana, desplácese hacia arriba,
$(window).scrollTop(0)
en el evento beforeunload hace los trucos, sin embargo, probé en Chrome 80 que volverá a la ubicación anterior después de la recarga.Para evitar eso, configure el
history.scrollRestoration
a"manual"
.fuente
La respuesta supercalifragilisticexpialidocious es:
agregue esto en la parte superior de su archivo js o etiqueta de script
fuente