我在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);
}