¿Cómo puedo establecer y obtener la posición actual de desplazamiento de la página web?
Tengo un chat con posición fija y si decides cerrarlo, la página se vuelve a cargar y vuelve 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 guardar la posición de desplazamiento actual (en una entrada oculta) antes de que se vuelva a cargar la página, podría volver a configurarla después de que se vuelva a cargar... ¿verdad? Pero por favor, muéstrame cómo hacerlo porque soy nuevo en esto.
function closeChat() { var x = document.getElementById("chatArea"); if(x.style.display == 'block'){ x.style.display = 'none'; } window.location.assign("explore.php"); return false; }PD: tengo que asignar a la misma página porque estoy enviando un parámetro a través de la url y cuando se cierra el chat, el parámetro sigue ahí... por eso
Sí, puede guardar la posición del desplazamiento en su función closeChat y almacenarla en su almacenamiento local
function closeChat() { var x = document.getElementById("chatArea"); if(x.style.display == 'block'){ x.style.display = 'none'; } localStorage.setItem('scrollValue', window.scrollY) // set it here window.location.assign("explore.php"); return false; }Luego, en la carga de la página, solo agrega ese valor a window.scrollTo(x, y)
const scrollValue = localStorage.getItem("scrollValue") window.scrollTo(0, scrollValue ? scrollValue : 0)Tal vez debería intentar obtener la propiedad scrollTop del elemento debajo del cuadro de chat. Luego lo almacena en el almacenamiento local y accede a él al cerrar el chatbox.
puede guardar el desplazamiento actual en el almacenamiento local y restaurarlo cuando la página se vuelve a cargar
// when leaving the page window.localStorage.setItem('scroll', x.scrollTop); // when entering the page x.scrollTop = localStorage.getItem('scroll');espero haber ayudado :)