Как заставить Android реагировать на прикосновения? - PullRequest
3 голосов
/ 07 октября 2011

Я создаю веб-приложение с элементами div с переполнением: стили прокрутки.Поскольку браузер Android не поддерживает это, мне нужно использовать прикосновения и перетаскивания с моей собственной пользовательской функцией.

$([element]).
.bind('touchmove', function(event) {
    event.preventDefault();
    // Move elements around as page scrolls, using event.pageY
})
.bind('touchstart', function(event) {
    event.preventDefault();
    // Do stuff to set up scrolling event.
}

Это прекрасно работает на устройствах iOS.Тем не менее, в Android это не так.

С console.log я обнаружил, что event.pageY всегда установлен на ноль (в iOS он говорит вам, где ваше касание по отношению к остальной части страницы).Я также получаю следующее зашифрованное сообщение:

W/webview (21798): Miss a drag as we are waiting for WebCore's response for touch down.

Данные об этом были минимальными, но, похоже, это тот случай, когда Android фактически не регистрирует событие касания, пока вы не отсоедините его.Я не верю, так как нормальные страницы прокручиваются нормально.Я просто не знаю, как заставить его распознавать реальное значение pageY, вместо того, чтобы игнорировать значение Y касания.

Спасибо за внимание!

1 Ответ

6 голосов
/ 20 октября 2011

Пожалуйста, используйте:

event.touches[0].pageY

вместо:

event.pageY

это будет работать.

...