Javascript 为什么touchmove永远不会在Android的chrome中结束?

Javascript 为什么touchmove永远不会在Android的chrome中结束?,javascript,google-chrome,touchmove,Javascript,Google Chrome,Touchmove,我有这个代码在chrome桌面上工作。我使用simulate touch对其进行了测试,结果与预期相符。当我试着在平板电脑上用chrome Android浏览器观看它时,我感到惊讶。这是复杂的,但它应该创建一个触摸板来控制相机。它捕捉起点,如果将手指向任意一侧移动50个像素,则开始向其移动。当你停止触摸时,垫子应停止移动。同时,当我在平板电脑上这样做时,它根本不会移动,而且,当我停止触摸时,如果我移动了手指,平板电脑就不会隐藏。。。我不知道这是我的代码的问题还是浏览器本身的问题 编辑:我试过an

我有这个代码在chrome桌面上工作。我使用simulate touch对其进行了测试,结果与预期相符。当我试着在平板电脑上用chrome Android浏览器观看它时,我感到惊讶。这是复杂的,但它应该创建一个触摸板来控制相机。它捕捉起点,如果将手指向任意一侧移动50个像素,则开始向其移动。当你停止触摸时,垫子应停止移动。同时,当我在平板电脑上这样做时,它根本不会移动,而且,当我停止触摸时,如果我移动了手指,平板电脑就不会隐藏。。。我不知道这是我的代码的问题还是浏览器本身的问题

编辑:我试过android版的firefox,效果不错。一定是关于铬的。。。我认为这与e.preventDefault()有关

代码如下:

    function handleStart (event) {
        mando.tactil=true;
        mando.tactilX=event.changedTouches[0].clientX;
        mando.tactilY=event.changedTouches[0].clientY;
    }
    function handleEnd (event) {
        mando.tactil=false;
        animTactil();

        mando.tactilX=0;
        mando.tactilY=0;
        mando.tactilMoveX=0;
        mando.tactilMoveY=0;
    }
    function handleMove (event) {

        mando.tactilMoveX=event.changedTouches[0].clientX;
        mando.tactilMoveY=event.changedTouches[0].clientY;
        animTactil();
    }
    function animTactil () {
            if(mando.tactilX>w/3){
                //TACTIL DERECHA
                if(mando.tactilMoveX>mando.tactilX+tamanoDedo && mando.tactil){
                    mando.de=true;
                }else if(mando.tactilMoveX>mando.tactilX+tamanoDedo  && !mando.tactil && mando.de || mando.de && mando.tactil){
                    mando.de=false; mando.inerciaDE = vel;
                }else{mando.de=false;}

                //TACTIL IZQUIERDA
                if(mando.tactilMoveX<mando.tactilX-tamanoDedo && mando.tactil){
                    mando.iz=true;
                }else if(mando.tactilMoveX<mando.tactilX-tamanoDedo  && !mando.tactil && mando.iz || mando.iz && mando.tactil){
                    mando.iz=false; mando.inerciaIZ = vel;
                }else{mando.iz=false;}

                //TACTIL ARRIBA
                if(mando.tactilMoveY<mando.tactilY-tamanoDedo && mando.tactil){
                    mando.ar=true;
                }else if(mando.tactilMoveY<mando.tactilY-tamanoDedo  && !mando.tactil && mando.ar || mando.ar && mando.tactil){
                    mando.ar=false; mando.inerciaAR = vel;
                }else{mando.ar=false;}

                //TACTIL ABAJO
                if(mando.tactilMoveY>mando.tactilY+tamanoDedo && mando.tactil){
                    mando.ab=true;
                }else if(mando.tactilMoveY>mando.tactilY+tamanoDedo  && !mando.tactil && mando.ab || mando.ab && mando.tactil){
                    mando.ab=false; mando.inerciaAB = vel;
                }else{mando.ab=false;}
    }
}

if(tactil){
    canvas.addEventListener("touchstart", handleStart, false);
    canvas.addEventListener("touchend", handleEnd, false);
    canvas.addEventListener("touchmove", handleMove, false);
}
功能手柄启动(事件){
mando.tactil=真;
mando.tactilX=event.changedTouches[0].clientX;
mando.tactilY=event.changedTouches[0].clientY;
}
函数句柄(事件){
mando.tactil=假;
动物的();
mando.tactilX=0;
mando.tactilY=0;
mando.tactilMoveX=0;
mando.tactilMoveY=0;
}
功能手柄移动(事件){
mando.tactilMoveX=event.changedTouches[0].clientX;
mando.tactilMoveY=event.changedTouches[0].clientY;
动物的();
}
功能动物(){
如果(mando.tactilX>w/3){
//触觉德雷查
if(mando.tactilMoveX>mando.tactilX+tamanoDedo&&mando.tactil){
mando.de=真;
}否则如果(mando.tactilMoveX>mando.tactilX+tamanoDedo&&!mando.tactil&&mando.de | | mando.de&&mando.tactil){
mando.de=false;mando.inerciaDE=vel;
}else{mando.de=false;}
//触觉伊兹基尔达

如果(mando.tactilmovex)缺少相关的上下文代码:如何附加处理程序?进一步:是否发生任何错误?您可以从桌面Chrome(通过USB连接的平板电脑)尝试您的代码。我还意识到,当我做一些奇怪的事情时,比如疯狂触摸,它开始移动,而不是什么都不做。我正在尝试其他触摸浏览器