События Javascript для жестов в Webkit на Mac? - PullRequest
4 голосов
/ 21 января 2011

Можно ли получить события жестов, такие как 3 пальца назад, на Webkit на рабочем столе Mac в Javascript? Я сделал несколько поисков в Google и не смог ничего найти. В противном случае, я думаю, я мог бы передать их из какао в WebView. Я особенно заинтересован в 3 пальца назад.

EDIT

Похоже, что даже в приложении Sencha Touch Kitchen Sink в последних ночных ночных рубашках Webkit на моем Macbook Pro события смахивания не обнаруживаются. Однако для меня есть более простое решение - просто использовать состояние истории браузера при частичном обновлении страницы в стиле Ajax (не могу поверить, что я об этом не думал) с плагином истории Backbone.js, чтобы пользователь мог перейти назад с помощью кнопки «Назад» браузера или 3 пальца.

Ответы [ 2 ]

2 голосов
/ 22 января 2011

Webkit на данный момент не совместим с сенсорным API.

Если вы хотите узнать, поддерживается ли API сенсорных событий, вы можете использовать modernizr и изменять свой пользовательский интерфейс в зависимости от результатов ...

Загрузите его здесь: http://www.modernizr.com/ Затем напишите что-то вроде этого:

if (Modernizr.touch){
  // bind to touchstart, touchmove, etc and watch `event.streamId`
} else {
  // bind to normal click, mousemove, etc
}        

Modernizr также настроит класс вашего элемента тела, чтобы вы могли получить к нему доступ с помощью CSS

Вы можете дополнить его yepnope js: http://yepnopejs.com/

yepnope({
  test: Modernizr.touch,
  yep: 'touch-ui.js',
  nope: 'standard-ui.js'
});

А когда события поддерживаются, вы можете использовать jQuery mobile.

1 голос
/ 21 января 2011

Для этого есть API. Например, это код для изменения размера и поворота с использованием API жестов:

var width = 100, height = 200, rotation = ;
node.ongesturechange = function(e){
  var node = e.target;
  // scale and rotation are relative values,
  // so we wait to change our variables until the gesture ends
  node.style.width = (width * e.scale) + "px";
  node.style.height = (height * e.scale) + "px";
  node.style.webkitTransform = "rotate(" + ((rotation + e.rotation) % 360) + "deg)";
}

node.ongestureend = function(e){
  // Update the values for the next time a gesture happens
  width *= e.scale;
  height *= e.scale;
  rotation = (rotation + e.rotation) % 360;
}

Вы можете прочитать этот урок: Касание и жесты на iPhone

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