¿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.scrollToppropiedad.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.scrollTopsiempre devuelve 0.document.body.scrollTop, sin embargo, parece funcionar. Un Firefox en Ubuntu, por otro lado, lo contrario es cierto: obtienes 0 conbodyy la cantidad correcta condocumentElement. ¿Alguna idea de lo que da?scrollToppropiedad no funciona en todos los navegadores. Verifiquewindow.pageXOffsetywindow.pageYOffsetobtenga mejores resultados.La respuesta aceptada actualmente es incorrecta;
document.documentElement.scrollTopsiempre devuelve 0 en Chrome. Esto se debe a que WebKit se utilizabodypara 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.pageYOffsetes 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
0cuando se usadocument.documentElement.scrollTopo 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