2012-02-15 17 views
7

Z poniższym kodem próbuję znaleźć, kiedy użytkownik przewinie się na dół strony. W aplikacji mobilnej JQuery.Użytkownik mobilny JQuery przewiń do dołu

$(window).scroll(function(){ 
    if($(window).scrollTop() == $(document).height() - $(window).height()){ 
      alert("The Bottom"); 
    } 
}); 

Na razie chcę tylko, aby wynik był taki, że dotarł do dna.

Mój problem polega na tym, że po załadowaniu strony wyświetli się ten komunikat. Kiedy przewińę na dół, wyprowadzę alarm.

Czy istnieje sposób, aby zatrzymać to działanie po załadowaniu strony i robić to tylko wtedy, gdy użytkownik fizycznie przewinął stronę?

Dzięki

Odpowiedz

7

Czy Twoje treści są krótsze niż twoja strona? Oznacza to, że kiedy się ładuje, jesteś już na dole. Próbowałem odtworzyć Twój problem tutaj http://jsfiddle.net/qESXR/2/ i zachowuje się jak chcesz. Jednak jeśli skracam zawartość i uruchamiam ją lokalnie na moim komputerze, otrzymuję taki sam rezultat.
Jeśli tak, można sprawdzić wysokość strony vs wysokości kodu HTML przy użyciu tych

$(window).height(); // returns height of browser viewport 

$(document).height(); // returns height of HTML document 

takiego:

$(window).scroll(function(){ 
    if($(document).height() > $(window).height()) 
    { 
     if($(window).scrollTop() == $(document).height() - $(window).height()){ 
      alert("The Bottom"); 
     } 
    } 
}); 
+0

Tak, dane są ładowane dynamicznie. więc początkowe obciążenie jest puste, ale gdy dane zostaną wstawione do DOM, to oczywiście rozszerza się. –

+0

Wygląda na to, że musisz dynamicznie dodawać scroll po załadowaniu zawartości. Jeśli tak, oto dobry zasób http://stackoverflow.com/questions/4306387/jquery-add-and-remove-window-scrollfunction – davehale23

+0

Dziękuję bardzo! to doprowadza mnie do szaleństwa !! –

1

Problemem jest to, że jQuery Mobile page widget traktuje każdy „strona” jak okno do przewijania idzie. Aby wykryć, gdy użytkownik przewija do końca, wiążą funkcję przewijania $(document) Zamiast:

http://jsfiddle.net/5x6T2/

$(document).scroll(function() { 
    if ($(window).scrollTop() + $(window).height() == $(document).height()) { 
     alert("Bottom reached!"); 
    } 
}); 
Powiązane problemy