Я пытаюсь создать страницу для мобильных устройств, которая обнаруживает позицию scrollTop
и прокручивает ее до верхней части страницы, если scrollTop
ниже половины высоты документа или прокрутите вниз, если ее нет.Touchend не срабатывает после touchmove
я добился того, что с помощью этого:
var ScrollTimeout;
$(window).on('scroll',function(){
clearTimeout(ScrollTimeout);
ScrollTimeout = setTimeout(scrollToTopOrBottom,200);
});
Проблема заключается в том, что тайм-аут срабатывает, когда пользователь прекращает прокрутку, но до сих пор палец на экране.
Тогда я работал с событием touchend
, и это было здорово.
$(document).on('touchend',function(){
scrollToTop();
});
Пользователь может прекращает прокрутку (с пальцем все еще на экране), а затем продолжить прокрутку, не вызывая функцию scrollToTopOrBottom()
.
Проблема заключается в том, что событие incosistent между браузерами:
В некоторых браузерах (Maxthon и Android), то touchend
событие работал как задумано, но в Opera Mobile и Chrome, то touchend
событие не пожары. Объяснением для этого является то, что touchend
doesn't fires because touchcancel
has been fired before.
Я попробовал этот
$(document).on('touchmove',function(e){
e.preventDefault();
});
и успешно избегал срабатывания touchcancel
, но несчастию также избежать естественного поведения прокрутки.
Кто-нибудь знает, как это можно достичь? У меня совершенно нет идей.
Спасибо.
Это сработало для меня. –
Работал отлично! Спасибо – Logic1
попробовал все, чтобы заставить touchhends правильно работать на Android 4.4, это было единственное, что помогло! Благодаря! – mls3590712