Это: < /p>
$('body').on('touchmove', function(e) { e.preventDefault(); });
< /code>
работает, но отключает прокрутку на всей странице, которая далеко не идеально. /p>
$('*').on('touchstart', function(e){
var element = $(this).get(0);
if ( element.scrollTop = element.scrollHeight ) element.scrollTop = element.scrollHeight - element.offsetHeight - 1;
});
< /code>
работает на страницах с областью прокрутки. Однако, когда нечего прокрутить, он снова покажет резиновую полосу. Как вы можете отключить эффект резиновой полосы и по-прежнему сохранить прокручиваемые области -webkit-overflow < /code>, прокручиваемые? >
лучшее решение < /strong> < /p>
Отключить прокрутку на всех не подкрещиваемых элементах, таких как панель вкладок или навигационная панель. < /p>
anElement.addEventListener('touchmove', function( event ){ event.preventDefault() };
< /code>
Прикрепите обработчик прокрутки к прокручиваемым элементам, таким как основной контент. < /p>
anElement.addEventListener('touchstart', function( event ){
if( this.scrollTop === 0 ) {
this.scrollTop += 1;
} else if( this.scrollTop + this.offsetHeight >= this.scrollHeight ) {
this.scrollTop -= 1;
}
}
Подробнее здесь: https://stackoverflow.com/questions/103 ... s-web-apps