移动设备上的Javascript - 告诉浏览器不要劫持手势

时间:2014-08-21 16:06:58

标签: javascript mobile canvas touch

我正在制作一款小型全屏帆布游戏,可在手机上播放。它涉及用手指在屏幕周围滑动。我有画布侦听触摸事件(向下,向上,向上)。

不幸的是,浏览器尝试将左右滑动解释为浏览器标签导航,并向上和向下滑动为隐藏/显示网址。我不在乎URL是否隐藏,我只想让一切都保持不动。

由于一切都在移动,它会间歇性地停止识别画布的输入。

我设置它的方式是画布,它采用屏幕的大小,将其位置设置为固定为0,0。这是为了防止滚动(除了隐藏/显示网址之外,它都有效)。

如果你想看一个例子,这里是我托管它的地方: http://phildogames.com/scratch/sust/index.html?game=window(您无法在桌面上进行互动,因为它正在侦听触摸事件,但如果您在移动设备上查看它,则应该能够打开和关闭窗口。)< / p>

tl; dr: 我想告诉浏览器只需将滑动(以及所有触摸事件)传递给dom,然后停止将其解释为滚动,切换标签,隐藏的意图/ show URL等..

谢谢!

1 个答案:

答案 0 :(得分:1)

我能够通过简单地防止身体接触来解决您的问题。

var myBody = document.getElementById('dabody');
myBody.addEventListener('touchstart', function(e){ 
    e.preventDefault() 
});

您可以将其扔到控制台中进行测试。在iOS Safari和Android Chrome上测试。