Foros del Web » Programando para Internet » Javascript »

Mantener la posición del scroll tras refrescar la página

Estas en el tema de Mantener la posición del scroll tras refrescar la página en el foro de Javascript en Foros del Web. He buscado por el foro sobre este tema pero en ningún caso se llega a una buena solución. Lo que quiero es que si estoy ...
  #1 (permalink)  
Antiguo 18/10/2009, 08:12
 
Fecha de Ingreso: septiembre-2009
Mensajes: 215
Antigüedad: 14 años, 7 meses
Puntos: 1
Mantener la posición del scroll tras refrescar la página

He buscado por el foro sobre este tema pero en ningún caso se llega a una buena solución.

Lo que quiero es que si estoy visualizando una lista de elementos y cambio el filtro de búsqueda,cuando la pagina se recargue no vuelva al inicio sino que se mantenga fija en la posición que estaba.

He conseguido hacer algo similar a lo que quiero guardando la posición del scroll antes de refrescar y restableciendolo después.El gran problema que tiene esto es que tras recargar, la página vuelve al principio y un poco despúes se mueve el scroll a la posición que le indico,provocando un efecto de movimiento muy malo.

¿Cuál es la forma correcta de conseguir lo que deseo?

Gracias
  #2 (permalink)  
Antiguo 18/10/2009, 09:59
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Mantener la posición del scroll tras refrescar la página

Probá colocando este código en la página cuya posición del scroll vertical querés recordar:
Código:
<script>
window.onload=function(){
var pos=window.name || 0;
window.scrollTo(0,pos);
}
window.onunload=function(){
window.name=self.pageYOffset || (document.documentElement.scrollTop+document.body.scrollTop);
}
</script>
  #3 (permalink)  
Antiguo 18/10/2009, 14:05
 
Fecha de Ingreso: septiembre-2009
Mensajes: 215
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Mantener la posición del scroll tras refrescar la página

Muchas gracias Panino5001

Funcionó perfectamente
  #4 (permalink)  
Antiguo 23/10/2009, 12:08
 
Fecha de Ingreso: octubre-2008
Ubicación: Lima
Mensajes: 1
Antigüedad: 15 años, 6 meses
Puntos: 0
De acuerdo Respuesta: Mantener la posición del scroll tras refrescar la página

Cita:
Iniciado por Panino5001 Ver Mensaje
Probá colocando este código en la página cuya posición del scroll vertical querés recordar:
Código:
<script>
window.onload=function(){
var pos=window.name || 0;
window.scrollTo(0,pos);
}
window.onunload=function(){
window.name=self.pageYOffset || (document.documentElement.scrollTop+document.body.scrollTop);
}
</script>
Gracias man! ... Muy buen codigo!
  #5 (permalink)  
Antiguo 23/10/2009, 12:41
 
Fecha de Ingreso: septiembre-2009
Mensajes: 215
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Mantener la posición del scroll tras refrescar la página

No sé si seré yo solo pero si le doy al boton a refrescar la página se ve como la página se carga al principio y un poco después se desplaza la barra de scroll.

En cambio si recargo la página con location.assign() el efecto que hace es perfecto ya que la página en ningún momento se mueve del sitio
  #6 (permalink)  
Antiguo 26/04/2012, 12:55
 
Fecha de Ingreso: febrero-2011
Ubicación: Barcelona
Mensajes: 4
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Mantener la posición del scroll tras refrescar la página

Fantástica solución. Lo estaba buscando hace tiempo.
  #7 (permalink)  
Antiguo 25/08/2014, 07:55
 
Fecha de Ingreso: agosto-2014
Mensajes: 1
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: Mantener la posición del scroll tras refrescar la página

Hola! Estoy empezando en el mundo de la programación y he usado el código escrito más arriba pero como comenta PINCHU da algunos problemas, en mi caso en Google Chrome. Podríais por favor ayudarme con el código que comenta location.assign(). Ya que no sé escribir el código :/ Muchísimas gracias de antemano!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 10:38.