为什么touchmove永远不会以针对Android的Chrome结束?

时间:2014-05-19 19:44:51

标签: javascript google-chrome touchmove

我在Chrome桌面上使用此代码。我使用模拟触摸测试它,它按预期工作。当我试图在我的平板电脑上观看它时,我感到惊讶,使用Chrome for Android。这很复杂,但应该创建一个用于控制相机的触摸板。它捕获开始,如果您将手指移动50个像素到任何一侧,您开始向它移动。当你停止触摸时,垫应该消失并且运动应该停止。同时,当我在平板电脑上进行此操作时,它根本不会移动,更重要的是,当我停止触摸时,如果我移动了手指,则垫子永远不会隐藏......我不会知道这是我的代码问题还是浏览器本身。

编辑:我尝试使用Firefox for android,它的工作原理。它必须是关于chrome的东西...我认为它与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);
}

0 个答案:

没有答案