2013-11-14 3 views
3

У меня есть простая веб-игра, работающая в HTML5 и CSS с угловым. Он использует инструкции Angular ng-mousedown, ng-mousemove и ng-mouseup, чтобы пользователь мог выделить буквы и плитки в игре и «пронести» вокруг из стороны в сторону.Угловые мышиные директивы на сенсорных устройствах

Отлично работает на рабочем столе в браузере. Однако в мобильном Safari на iPad или iPhone ни одно из действий мыши не срабатывает должным образом - вместо того, чтобы влиять на игровые элементы, сенсорные действия просто пытаются панорамировать и масштабировать окно браузера.

Я сохранил jQuery из своего решения до сих пор. Я использовал jQuery-touch-punch, чтобы перетащить jQuery-UI на мобильный Safari раньше. Но что такое решение без jQuery? Я просто хочу, чтобы приложение вел себя так же, как и в настольных браузерах.

Заранее благодарен!

ответ

1

ngTouch звучит как модуль, который вы хотите. ngClick - это абстракция кликов jQuery для поддержки событий мыши и касания. Если вы хотите, чтобы выделить что-то в то время как пользователь нажимает вниз, этот фрагмент может быть полезным из документации:

Эта директива также устанавливает класс CSS нг-клик-активен, когда элемент проходит вниз (по щелчок мышью или касание), так что вы можете переустановить нажатый элемент, если хотите.

Кроме того, ngSwipeLeft и ngSwipeRight позволяют настраивать обратные вызовы событий.

Однако, похоже, что ваша игра может потребовать более сложного поведения, чем просто привязка к этим 3 директивам. Если вы используете создать свою собственную директиву и используете услугу $swipe, возможно, у вас будет намного более тонкий контроль над поведением.

+0

Это выглядит круто, кроме - оно поддерживает только горизонтальные прогибы, а не вертикальные? Это кажется мне не верным. – blaster

+0

Служба '$ swipe' поддерживает оба. Из документа (связанного в моем ответе): «Как только этот порог превышен, либо горизонтальная, либо вертикальная дельта больше. - Если горизонтальное расстояние больше, это происходит, а затем перемещаются и заканчиваются события. - Если вертикальное расстояние это больше, это свиток, и мы разрешаем браузеру завладеть ». – jelinson

Смежные вопросы