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