2012-07-14 12 views
6

Pensé que cuando hizo clic en Actualizar, ¿se suponía que el navegador debía restablecer su página a la parte superior? Estoy usando un acordeón js y cuando actualizo, cierra el acordeón pero no vuelve a colocar la página en la parte superior.Volver a cargar el navegador no restablece la página al principio

http://imip.rvadv.com/index3.html

+2

nada que ver con Javascript, que es el funcionamiento por defecto del navegador Chrome – freefaller

+0

suele restablecer la parte superior de la página de desplazamiento si actualiza la misma. –

Respuesta

9

Pues bien, como se puede ver, no :)

pero se puede pedir con un poco de jQuery sencilla:

$(document).ready(function(){ 
    $(this).scrollTop(0); 
}); 

EDIT:

La única manera que parece funciona en IE 9, 12 FF y Chrome 20.0 es la siguiente:

$(document).ready(function(){ 
    $('html').animate({scrollTop:0}, 1); 
    $('body').animate({scrollTop:0}, 1); 
}); 

Lo extraño es que cuando traté de desplazamiento de los elementos directamente sin aplicar ningún tipo de animación (es decir, $('html').scrollTop(0)), no funcionó. Como la duración se establece en 1 milisegundo, el usuario no notará nada.

Me alegra que alguien pueda arrojar algo de luz sobre esto, ¿por qué el desplazamiento solo funciona con animaciones?

+1

Esto funciona en FF y Chrome pero no en IE – imakeitpretty

+0

@imakeitpretty Ver mis ediciones. –

+0

En IE9, todavía lo estoy viendo saltar. Salta a la cima, luego salta de regreso a donde estaba para comenzar. Me encantaría ver algo un poco más suave. Un deslizamiento hacia arriba sería bueno, ya que eso es lo que hace el resto de mi acordeón. – imakeitpretty

6

El navegador se desplazará hacia abajo a donde estaba antes de la recarga, como un intento de conveniencia. Solo es realmente útil para páginas excesivamente largas.

Usted puede "arreglar" este modo:

window.onload = function() {document.body.scrollTop = document.documentElement.scrollTop = 0;}; 
+0

Esto funciona en FF pero no en Chrome y en IE actúa jacked up. El tipo de pantalla parpadea antes de ejecutarse correctamente. – imakeitpretty

2

Basado en último comentario por comonpyke y pruebas propias recomiendo rollos

$(document).ready(function(){ 
    $('html, body').scrollTop(0); 

    $(window).on('load', function() { 
    setTimeout(function(){ 
     $('html, body').scrollTop(0); 
    }, 0); 
}); 
}); 
  • Primera scrollTop primeros
    • después documento listos desplaza
  • Segunda scrollTop finales
    • después evento de carga
      • y después de tiempo de espera
10

intente hacer esto si ninguna de las anteriores funcionó. Esto engañará al navegador para que piense que estaba en la parte superior del documento antes de actualizar.

$(window).on('beforeunload', function() { 
    $(window).scrollTop(0); 
}); 
Cuestiones relacionadas