обнаружение скольжения пальца javascript

#javascript #jquery #iphone #touch #slide

#javascript #jquery #iPhone #касание #слайд

Вопрос:

Я пытаюсь создать скользящий флажок, подобный тому, что установлен на iphone.

Я начал с этого скрипта:

 $('input[type=checkbox]').live('touchstart', function (e) {
            down_x = e.originalEvent.touches[0].pageX;
            $('input[type=checkbox]').live('touchmove', function (e) {up_x = e.originalEvent.touches[0].pageX;
            if ((down_x - up_x) > 1)  {$(this).change()}});
            });
  

Но, похоже, это не работает. Есть идеи о том, как это реализовать?

Ответ №1:

это была забавная маленькая проблема

У меня все работает просто отлично, это работает даже с мышью 🙂

Я протестировал это на своих Ipad и Iphone, и это довольно круто.

не потребовалось бы много усилий, чтобы превратить это в плагин, но у вас это должно работать просто отлично

хитрость работы с мобильными событиями ios заключается в этих трех событиях

 $('.toggle_box').bind('touchstart',touch_start);
$('.toggle_box').bind('touchmove',touch_move);
$('.toggle_box').bind('touchend',slide_end);   
  

http://jsfiddle.net/samccone/ZMkkd/

Комментарии:

1. ха, без проблем, на самом деле это было довольно весело, думаю, я напишу об этом большой пост в блоге, но рад, что вам понравилось

2. Я взломал этот скрипт примерно за 2 секунды, находясь на компьютере с помощью мыши. Я думаю, вам нужно вернуть false или где-нибудь остановить распространение… Я щелкал как сумасшедший, и он застрял в «зеленой» позиции и больше не работал.

3. действительно ли необходимы «touchstart» и «touchend»?

4. кроме того, в «touchmove» есть ли способ узнать направление движения?