Javascript 检测移动设备上的触摸移动事件

Javascript 检测移动设备上的触摸移动事件,javascript,html,touch-event,Javascript,Html,Touch Event,我正致力于检测水平拖动功能,该功能将检测X方向的运动变化。以下是代码: const myObject = document.getElementById("scroll-window"); play3D() var a = 0 var b = 0 myObject.onpointerdown = (e) => { a = e.clientX; myObject.onpointermove = (e) => { b = e.cli

我正致力于检测水平拖动功能,该功能将检测X方向的运动变化。以下是代码:

const myObject = document.getElementById("scroll-window");
play3D()
var a = 0
var b = 0
myObject.onpointerdown = (e) => {

    a = e.clientX;
    myObject.onpointermove = (e) => {

        b = e.clientX;
        var motionx = e.movementX
        if (e.movementX >=10){
            motionx = 10
        }
        moveX = b-a;
        if (moveX>5){
            console.log(moveX)
            setImage(+1);
            a = b;
        } else if (moveX<5){
             setImage(-1);
        }
        a = b;
    }
}
myObject.onpointerup = (e) => {
    moveX = 0;
    myObject.onpointermove = null;
}
constmyobject=document.getElementById(“滚动窗口”);
play3D()
变量a=0
var b=0
myObject.onpointerdown=(e)=>{
a=e.clientX;
myObject.onpointermove=(e)=>{
b=e.clientX;
var motionx=e.movementX
如果(e.movementX>=10){
运动X=10
}
moveX=b-a;
如果(移动X>5){
console.log(moveX)
setImage(+1);
a=b;
}else if(moveX{
moveX=0;
myObject.onpointermove=null;
}
这适用于桌面,但不适用于移动设备。
有人能告诉我可以做些什么来实现这一点吗?

指针[…]
事件不适用于触摸。对于触摸,您需要
触摸[…]
事件

myObject.addEventListener("touchstart", (e) => {
  ...
});
// touchstart, touchmove, touchend, touchcancel
代码的其他部分基本相同

请在此处阅读更多信息:


作为旁注,
指针[…]
事件已被淘汰,取而代之的是
鼠标[…]
事件。您可能希望切换到这些事件

请在此处阅读更多信息:


根据OP的请求,如果希望在两个事件上发生相同的操作,只需显式声明事件处理程序函数,并将其传递给
addEventListener()
两次。类似如下:

function hdlr1(ev) {
  // Handle event here
}
myObject.addEventListener("touchstart", hdlr1);
myObject.addEventListener("mousedown", hdlr1);
...

但是我个人不建议在这种情况下使用,因为您可能希望在将来赋予鼠标和触摸稍微不同的行为。此外,您应该注意只使用鼠标[…]和鼠标[…]共有的属性和功能events。我不打算在这个答案中解释多态性,但基本上你应该将此处理程序中的事件视为
UIEvent
,因为
UIEvent
MouseEvent
TouchEvent

的最后一个共同祖先,你能告诉我mousedown和touch事件是否可以组合在一起吗移动设备上的帽子触摸部分代码有效,而台式机上的鼠标部分代码有效?