Прокрутка мобильного пользователя JQuery вниз
следующий код, я пытаюсь найти, когда пользователь прокручивает в нижней части страницы. В jQuery mobile.
$(window).scroll(function(){
if($(window).scrollTop() == $(document).height() - $(window).height()){
alert("The Bottom");
}
});
пока я просто хочу, чтобы он вывел, что они достигли дна.
моя проблема в том, что при загрузке сайта он выведет это сообщение. Когда я прокручиваю вниз, он будет выводить предупреждение.
есть ли способ остановить его, когда страница загружена, и делать это только тогда, когда пользователь физически прокрутил страницу?
спасибо
2 ответов
это потому, что ваш контент короче вашей страницы? Это означает, что когда он загружается, Вы уже на дне. Я попытался воспроизвести вашу проблему здесь 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");
}
}
});
проблема в том, что jQuery Mobile виджет страницы обрабатывает каждую "страницу" как окно, насколько прокрутка идет. Чтобы определить, когда пользователь прокрутил до конца, привяжите функцию прокрутки к $(document)
вместо:
$(document).scroll(function () {
if ($(window).scrollTop() + $(window).height() == $(document).height()) {
alert("Bottom reached!");
}
});