2012-06-20 19 views
7

dostałem kod jQuery z tego linku (koniec strony): How to scroll to top of page with JavaScript/jQuery?Przewiń do kiedy strona obciążenie

Dlaczego nie można po prostu użyć jakiś element odniesienia na samym początku pliku HTML, jak

<div id="top"></div> 

a następnie, po załadowaniu strony, po prostu zrobić

$(document).ready(function(){ 

    top.location.href = '#top'; 

}); 

Jeśli przewija przeglądarki po Funkcja ta pożarów, wystarczy zrobić

$(window).load(function(){ 

    top.location.href = '#top'; 

}); 

teraz, wszystko działa, ale nie w Google Chrome! jak mogę naprawić ten kod dla Google Chrome? i jak mogę dodać animację do tego kodu? jak szybkość przewijania lub szybkość, powolność itp ...

Odpowiedz

17

Jeśli używasz jQuery, możesz użyć scrollTop, aby przewinąć. Jest to metoda, ale może też być animowana. Oto dokumentacja: jQuery API Documentation for scrollTop

Można używać go tak:

$("html,body").scrollTop(0); 

Albo do animacji:

$("html,body").animate({scrollTop: 0}, 1000); 

Można ustawić to w każdym obsługi zdarzenia:

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

Lub:

$(window).load(function() 
{ 
    $("html,body").animate({scrollTop: 0}, 1000); 
} 
+0

Kierowanie tagów HTML i tagów body powinno działać poprawnie w Chrome. – lewiguez

+0

dzięki. jak mogę dodać prędkość lub animację dla tego kodu? top.location.href = '#top'; – Alireza

+0

Nie możesz dojść tak daleko, jak się domyślam. Nie ustawiasz właściwości skalarnej, więc nie można jej animować. Zasadniczo animacja jest po prostu pętlą, która zwiększa wartość. To tylko ustawienie wartości na coś, co nie może być zwiększane. Teraz możesz znaleźć pionową pozycję #top elementu i przewiń do tej pozycji w pionie. Można to zrobić, ustawiając wartość scrollTop w kodzie animacji, ale nie na 0, ale na wartość pozycji pionowej. – lewiguez

0

(ja polecam lewiguez odpowiedź dał w praktyce, ale nadal nie wiem, dlaczego metoda nie działa w Google Chrome).

To wydaje się działać dla mnie, nie jestem pewien, o obciążeniu okna. Testowałem rzeczywistą linię "top.location.href" po kliknięciu linku.

$('#bottomlink').click(function(){ 
    top.location.href="#top"; 
    return false; 
}); 

To jest w górnej części strony.

<p id="top">lorem ipsum</p> 

I to jest łącze u dołu strony.

<a id="bottomlink" href="#">Bottom Link</a> 
+0

Potrzebuję aotomatic przewijania po wczytaniu strony, kod z pierwszego postu jest wroking, ale nie w chrome.Nie potrzebuję anchor łącza lub coś takiego.i potrzebuję przewiń do zakotwiczenia aotomatic po ładowaniu strony.Mam to, ale moim problemem jest google chrome! – Alireza

+0

Czy sprawdziłeś konsoli dla jakichkolwiek błędów w Chrome ? –

+0

OK, wstawiam id = "top" w tagu body, teraz wszystko działa, teraz w jaki sposób mogę dodać prędkość lub animację dla tego kodu? Top.location.href = '#top'; – Alireza