предотвратить перетаскивание приложения, но разрешить прокрутку внутренних элементов div в ios - PullRequest
2 голосов
/ 28 ноября 2011

У меня есть веб-приложение, которое я адаптирую к iOS5 с помощью Phonegap. Все работает, кроме одного выпуска:

Мои внутренние <div> s, которые настроены на прокрутку, если переполнены, и идеально прокручиваются, если переполнены в Chrome, вообще не прокручивают на iPad.

- я отключил перетаскивание приложений, отключив сенсорное управление - Я реализовал (возможно, неправильно?) свойство -webkit-overflow-scrolling: touch CSS, которое, по-видимому, является новым для iOS5 следующим образом:

переполнение: прокрутка; -webkit-переполнение прокрутки: сенсорный;

Кажется, ничего не работает.

Если я закомментирую javascript (из Phonegap), который отключает перетаскивание приложения (т. Е. Touchmove), тогда прокрутка работает, но она перетаскивает и прокручивает все приложение.

Любая помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 27 мая 2014

Мне удалось предотвратить перетаскивание основного приложения / страницы с помощью следующего кода:

var myDiv = document.getElementById('idMyDiv');

myDiv.addEventListener('touchmove', function (e){
    e.preventDefault();
}, false);
0 голосов
/ 28 ноября 2011

Это скорее хак, но вы можете проверить, касаетесь ли вы div или нет, и, в зависимости от этого, вы предотвращаете прокрутку следующим образом:

document.body.addEventListener('touchmove', function (e){
    if(document.elementFromPoint(e.pageX, e.pageY) !== document.getElementById('yourdiv'){
        e.preventDefault();
    }
}, false);

MDN ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...