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