2012-02-15 2 views
7

Со следующим кодом я пытаюсь найти, когда пользователь прокручивает страницу вниз. В мобильном устройстве JQuery.JQuery Mobile Пользователь прокрутить вниз

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

На данный момент я просто хочу, чтобы он выводил, что они достигли дна.

Моя проблема в том, что когда сайт загружается, он выдает это сообщение. Когда я прокручу вниз, он выдает предупреждение.

Есть ли способ остановить его выполнение при загрузке страницы и делать это только тогда, когда пользователь физически прокручивает страницу?

Thanks

ответ

7

Это потому, что ваш контент короче вашей страницы? Это означает, что когда он загружается, вы уже находитесь внизу. Я пытался реплицировать вашу проблему здесь http://jsfiddle.net/qESXR/2/, и он ведет себя так, как вы хотите. Однако, если я сокращаю содержимое и запускаю его локально на своей машине, я получаю тот же результат, который у вас есть.
Если да, то вы можете проверить высоту страницы против высоты вашего HTML, используя эти

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

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

так:

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

Да, данные загружаются в динамически. поэтому первоначальная загрузка пуста, но как только данные вставляются в DOM, она явно расширяется. –

+0

Похоже, вам нужно динамически добавлять свиток после загрузки содержимого. Если так, то вот хороший ресурс http://stackoverflow.com/questions/4306387/jquery-add-and-remove-window-scrollfunction – davehale23

+0

Большое вам спасибо! это заставило меня с ума! –

1

Проблема заключается в том, что JQuery Mobile, page widget рассматривает каждую «страницу» как окно до прокрутки. Для того, чтобы определить, когда пользователь прокрутил до конца, связать функцию прокрутки $(document) вместо:

http://jsfiddle.net/5x6T2/

$(document).scroll(function() { 
    if ($(window).scrollTop() + $(window).height() == $(document).height()) { 
     alert("Bottom reached!"); 
    } 
}); 
Смежные вопросы