问题 javascript手指滑动检测


我正在尝试创建一个像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()}});
            });

但它似乎没有用。有关如何实现这一点的任何想法?


10106
2018-05-13 23:30


起源



答案:


这是一个有趣的小问题

我让它工作得很好,它甚至可以用鼠标:)

我在我的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/


16
2018-05-14 04:30



伙计,你,太棒了:D - cmplieger
哈,没问题,实际上这很有趣,我想我会写一篇关于它的大博文,但很高兴你喜欢它 - samccone
我用计算机用鼠标在2秒内打破了这个脚本。我认为你需要一个返回虚假或停止传播...我点击疯狂,它被卡在“绿色”位置,不再工作。 - Alex
是“touchstart”和“touchend”真的有必要吗? - Martian2049
另外,在'touchmove'中,有没有办法找出运动方向? - Martian2049


答案:


这是一个有趣的小问题

我让它工作得很好,它甚至可以用鼠标:)

我在我的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/


16
2018-05-14 04:30



伙计,你,太棒了:D - cmplieger
哈,没问题,实际上这很有趣,我想我会写一篇关于它的大博文,但很高兴你喜欢它 - samccone
我用计算机用鼠标在2秒内打破了这个脚本。我认为你需要一个返回虚假或停止传播...我点击疯狂,它被卡在“绿色”位置,不再工作。 - Alex
是“touchstart”和“touchend”真的有必要吗? - Martian2049
另外,在'touchmove'中,有没有办法找出运动方向? - Martian2049