2012-07-14 12 views
6

Ho pensato che quando si è fatto clic su Aggiorna, il browser avrebbe dovuto ripristinare la pagina in alto? Sto usando una fisarmonica js e quando si aggiorna, chiude la fisarmonica ma non riposiziona la pagina verso l'alto.Il browser di ricaricamento non reimposta la pagina

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

+2

Niente a che vedere con Javascript, operazione predefinita del browser – freefaller

+0

Chrome non ripristinerà la parte superiore in alto della pagina se la aggiorni. –

risposta

9

Beh, come potete vedere, non :)

Ma si può forzare con qualche semplice jQuery:

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

EDIT:

L'unico modo che sembra funziona in IE 9, FF 12 e Chrome 20.0 è il seguente:

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

Cosa strana è che quando ho provato scorrendo gli elementi direttamente senza applicare alcuna animazione (cioè, $('html').scrollTop(0)), non ha funzionato. Poiché la durata è impostata su 1 millisecondo, l'utente non noterà nulla.

Sarei felice se qualcuno potesse far luce su questo - perché lo scorrimento funziona solo con le animazioni?

+1

Funziona in FF e Chrome ma non in IE – imakeitpretty

+0

@imakeitpretty Vedi le mie modifiche. –

+0

In IE9, lo vedo ancora saltare. Salta in cima, poi salta di nuovo verso il punto in cui era per cominciare. Mi piacerebbe vedere qualcosa di un po 'più liscio. Uno scivolo verso l'alto sarebbe bello perché è quello che fa il resto della mia fisarmonica. – imakeitpretty

6

Il browser scorrere verso il basso a dove eravate prima della ricarica, come un tentativo di convenienza. È davvero utile solo per pagine eccessivamente lunghe.

È possibile "fissare" questo modo:

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

Funziona in FF, ma non in Chrome e in IE funziona con jack. Il tipo di sfarfallio dello schermo prima che venga eseguito correttamente. – imakeitpretty

2

Sulla base di ultimo commento di comonpyke e prove proprie raccomando pergamene

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

    $(window).on('load', function() { 
    setTimeout(function(){ 
     $('html, body').scrollTop(0); 
    }, 0); 
}); 
}); 
  • Prima scrollTop primi
    • dopo il documento pronto scorre
  • Seconda scrollTop fine
    • dopo caricare l'evento
      • e dopo il timeout
10

Prova questa, se nessuna delle precedenti ha funzionato. Ciò ingannerà il browser a pensare che fosse nella parte superiore del documento prima dell'aggiornamento.

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