¿Cómo puedo obtener y configurar la posición actual de desplazamiento de la página web?
Tengo un formulario largo que debe actualizarse en función de las acciones / entradas del usuario. Cuando esto sucede, la página se restablece a la parte superior, lo que es molesto para los usuarios, porque tienen que desplazarse hacia abajo hasta el punto en el que estaban.
Si pudiera capturar la posición de desplazamiento actual (en una entrada oculta) antes de que la página se recargue, podría volver a configurarla después de que se recargue.
javascript
html
xyz
fuente
fuente
Respuestas:
Estás buscando la
document.documentElement.scrollTop
propiedad.fuente
getScrollingPosition()
para almacenar los valores en variables ocultas. Luego, en el html de la página actualizada que uso<body onLoad="window.scrollTo(x,y)
, ¡donde xey son los de los valores ocultos!document.documentElement.scrollTop
siempre devuelve 0.document.body.scrollTop
, sin embargo, parece funcionar. Un Firefox en Ubuntu, por otro lado, lo contrario es cierto: obtienes 0 conbody
y la cantidad correcta condocumentElement
. ¿Alguna idea de lo que da?scrollTop
propiedad no funciona en todos los navegadores. Verifiquewindow.pageXOffset
ywindow.pageYOffset
obtenga mejores resultados.La respuesta aceptada actualmente es incorrecta;
document.documentElement.scrollTop
siempre devuelve 0 en Chrome. Esto se debe a que WebKit se utilizabody
para realizar un seguimiento del desplazamiento, mientras que Firefox e IE utilizanhtml
.Para obtener la posición actual, desea:
Puede establecer la posición actual en 1000px hacia abajo en la página así:
O, usando jQuery (¡anímelo mientras lo hace!):
fuente
window.pageYOffset
es más limpia si está utilizando métodoswindow.scrollBy()
owindow.scrollTo()
.Existen algunas inconsistencias en la forma en que los navegadores exponen las coordenadas de desplazamiento de la ventana actual. Google Chrome en Mac e iOS parece volver siempre
0
cuando se usadocument.documentElement.scrollTop
o jQuery$(window).scrollTop()
.Sin embargo, funciona de forma coherente con:
fuente
Fui con la solución de almacenamiento local HTML5 ... Todos mis enlaces llaman a una función que establece esto antes de cambiar window.location:
y cada página tiene esto en el cuerpo onLoad:
fuente