Как избавится от анимации конца списка в iphone, ipad?

Добрый день! При прокрутке страниц в браузере на мобильных apple устройствах при докручивании до конца списка, страница начитает как бы тянуться за пальцем. Подскажите пожалуйста как отрубить этот эффект JS-ом? Пример на скниншоте.
P.S. " e.preventDefault(); " не проканывает, т.к. внутри страницы нужен скроллинг контента,стандартными средствами браузера
  • Вопрос задан
  • 2715 просмотров
Решения вопроса 1
enovot
@enovot Автор вопроса
Итак, я разобрался. Суть в том, что есть на сайте страницы со скроллингомм контента и без. На тех страницах где скроллинга нет, при событии touchmove использую метод e.preventDefault();
Таким образом метод e.preventDefault(); не влияет на родной скроллинг браузера , при этом метод e.preventDefault(); не дает тянуть сраницу вниз когда дошли до конца списка (проблема о которой я писал собственно).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
EnterSandman
@EnterSandman
Эникей
$(document).on('touchmove',function(e){
e.preventDefault();
});
//uses body because jquery on events are called off of the element they are
//added to, so bubbling would not work if we used document instead.
$('body').on('touchstart','.scrollable',function(e) {
if (e.currentTarget.scrollTop === 0) {
e.currentTarget.scrollTop = 1;
} else if (e.currentTarget.scrollHeight === e.currentTarget.scrollTop + e.currentTarget.offsetHeight) {
e.currentTarget.scrollTop -= 1;
}
});
//prevents preventDefault from being called on document if it sees a scrollable div
$('body').on('touchmove','.scrollable',function(e) {
e.stopPropagation();
});

или

$('body').on('touchmove', function (e) {
if (!$('.scrollable').has($(e.target)).length) e.preventDefault();
});
Ответ написан
smanioso
@smanioso
Отмечайте ответы на свои вопросы!
Это стандартное поведение UIWebView - отключить из JS его скорее всего нельзя.
Оптимальным вариантов будет изменить структуру DOM-дерева таким образом, чтобы страница сама по себе не выходила за границы окна. Скроллинг контента реализовать собственными методами (для примера можно взять Ionic Framework).
Ответ написан
DeLaVega
@DeLaVega
Верстаю, фронтэндю =)
На сколько я понимаю это заложено в устройство, и вы никак не сможете на это повлиять.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы