2012-03-19 19 views
10

Czy mimo to mogę ją ustawić, aby strona automatycznie przewinęła się do góry po załadowaniu zawartości (przez Ajax)?Przewiń do góry po załadowaniu zawartości ajaxowej

Jest to kod mam do wyświetlania treści:

$(document).ready(function() { 
    var my_layout = $('#container').layout(); 
    $("a.item_link").click(function() { 
     $("#loader").fadeIn(); 

     feed_url = $(this).attr("href"); 
     $.ajax({ 
      type: "POST", 
      data: "URL=" + feed_url, 
      url: "view.php", 
      success: function (msg) { 
       $("#view-area").html(msg); 

       $("#loader").fadeOut(); 
      } 
     }); 
     return false; 
    }); 
}); 

Więc po „view-area” załadował jej zawartość można utworzyć stronę Autoprzewijanie do góry?

Odpowiedz

21

Wystarczy użyć funkcji przewijania

scrollTo(0); 

Jeśli chcesz jQuery, następnie here is a good example with smoothing :)

Z linkiem:

$('html, body').animate({ scrollTop: 0 }, 0); 
//nice and slow :) 
$('html, body').animate({ scrollTop: 0 }, 'slow'); 

Aby umieścić go w kodzie

... 
     success: function (msg) { 
      $("#view-area").html(msg); 
      $("#loader").fadeOut(); 
      //Put code here like so 
      $('html, body').animate({ scrollTop: 0 }, 0); 
     } 
+0

Zaktualizowałem odpowiedź –

+0

Dzięki, to zadziałało idealnie! Właśnie umieściłem kod pomiędzy $ ("# view-area"). Html (msg); i $ ("# loader"). FadeOut(); i zadziałało! Dzięki. –

1

Możesz wykonać następujące operacje: $(window).scrollTop(0);

+0

Gdzie o tym w kodzie wstawiłbym to? –

+0

@ TheTechBox zaraz po '$ (" # loader "). FadeOut();' – Icarus

+0

Awesome! Działa jak marzenie! Za świetną wskazówkę !: D – drpelz

1

Wszystkie żądania ajax mają argument wywołania zwrotnego, więc użyj scrollTop(0). Sprawdź dokumentację jQuery, jak korzystać z wywołań ajaxowych.

Powiązane problemy