Я работаю над веб-приложением на базе iPad, и мне нужно предотвратить чрезмерную прокрутку, чтобы он выглядел как веб-страница. В настоящее время я использую это, чтобы заморозить окно просмотра и отключить прокрутку:
document.body.addEventListener('touchmove',function(e){
e.preventDefault();
});
Это отлично подходит для отключения overcroll, но мое приложение имеет несколько прокручиваемых div, а приведенный выше код не позволяет им прокручивать.
Я ориентируюсь на iOS 5 и выше, только поэтому избегаю хакерских решений, таких как iScroll. Вместо этого я использую этот CSS для моих прокручиваемых div:
.scrollable {
-webkit-overflow-scrolling: touch;
overflow-y:auto;
}
Это работает без прокрутки документа script, но не решает проблему прокрутки div.
Без плагина jQuery есть ли способ использовать исправление переполнения, но освободить мои div (?. прокручиваемые)?
EDIT:
Я нашел что-то подходящее решение:
// Disable overscroll / viewport moving on everything but scrollable divs
$('body').on('touchmove', function (e) {
if (!$('.scrollable').has($(e.target)).length) e.preventDefault();
});
Окно просмотра по-прежнему перемещается, когда вы прокручиваете начало или конец div. Я также хотел бы найти способ отключить это.