touchmove事件是否支持多点触控?

时间:2015-06-18 04:58:30

标签: javascript jquery html css

屏幕上有两个正方形。每个都有一个touchmove事件。当我在手机上运行时,我想让它返回我手指的正确X位置。如果我一次做一个方格(即只有一个手指只在屏幕上),它工作正常。但是如果我在每个方格上都有两个手指并且我同时移动它们,那么X会搞砸了。这是处理多点触控x的正确方法吗?

HTML:

<div id='container1'></div>
<div id='container2'></div>

的javascript:

$('#container1').bind('touchmove', function() {        
            console.log("container1-" + event.pageX);
            event.preventDefault();
    });


$('#container2').bind('touchmove', function() {
        console.log("container2-" + event.pageX);
       event.preventDefault();
    });

的CSS:

#container1 {
    margin:50px;
    width:300px;
    height:300px;
    background:red;
}

#container2 {
    margin:50px;
    width:300px;
    height:300px;
    background:green;
}

我的jsfiddle在这里: http://jsfiddle.net/foreyez/jghzqL9p/

如果您按下&#39;运行&#39;旁边的移动图标,则可以在移动设备上运行它按钮。

2 个答案:

答案 0 :(得分:0)

当您处理触摸事件时,您应该使用“已更改的内容”。事件对象的属性。它是所有当前触摸的列表,包含标识符(标识触摸 - 您的手指),pageX,pageY等参数。

为了全面了解多点触控,我会重新阅读this MDN article

答案 1 :(得分:0)

是的。根据Maxim的建议,您应该使用changedTouches来读取多个触摸。 “changedTouches”中的点对touchstart,touchend和touchmove事件有不同的含义。

如果您尝试交换或移动对象,那么您应该使用'touchstart'和'touchmove'的组合来到达对象的最终位置。