Вопрос по iPad Safari Event Handler - PullRequest
0 голосов
/ 21 июля 2011

Допустим, у меня есть коробка / таблица с несколькими строками ... Эти строки можно перетаскивать.

Теперь у меня есть JS, где я реализовал обработчики событий для touchstart, touchmove, touchend для iPad ...В основном они просто сопоставляют эти события с соответствующими событиями мыши, такими как mouseover, mousedown, mouseup и т. Д.

Теперь вот моя проблема;

Хотя я могу перетащить любую строку из таблицыЯ также хочу иметь возможность прокрутить его.Когда я нажимаю любым пальцем на экране и перетаскиваю, он выполняет действие перетаскивания для этой строки (поскольку я использую event.preventDefault () для сенсорного перемещения, чтобы предотвратить область прокрутки по умолчанию).

Теперь я понимаю, что яне может иметь оба действия (перетаскивание / прокрутка) с помощью одного пальца .. Поэтому я хочу реализовать / выполнить действие прокрутки, когда используются 2 пальца .. (Другой случай, т.е. для одного пальца, он должен выполнять действие перетаскивания)

Теперь я знаю, что event.touches.length / event.targetTouches.length не показывает никаких пальцев на экране, я не уверен, как использовать это для выполнения действия прокрутки ... Так же, как FYI,эта прокрутка была бы аналогична той, которую мы получаем на iPad для прокрутки div с фиксированной высотой (переполнение: авто), которую iPad предоставляет «из коробки».

Спасибо.

1 Ответ

0 голосов
/ 21 июля 2011

Вы можете запустить предотвращение по умолчанию позже и, опционально.Выяснение того, хотите ли вы сначала использовать пользовательское / перетаскивающее поведение.

что-то вроде этого: (Я понятия не имею, будет ли работать этот точный код, поскольку я не могу его протестировать прямо сейчас, это предполагает, что вы используете jQuery, и я неНе знаю свойства события по количеству пальцев, но просто чтобы дать вам представление:)

$('#SomeElement').TouchMove(
   function(e)
     {
        if( /* number of fingers equals one */ )
        { 
          e.preventDefault()
          //more element-drag code could go here
          return;
        }
     }
);
...