我正在制作一款小型全屏帆布游戏,可在手机上播放。它涉及用手指在屏幕周围滑动。我有画布侦听触摸事件(向下,向上,向上)。
不幸的是,浏览器尝试将左右滑动解释为浏览器标签导航,并向上和向下滑动为隐藏/显示网址。我不在乎URL是否隐藏,我只想让一切都保持不动。
由于一切都在移动,它会间歇性地停止识别画布的输入。
我设置它的方式是画布,它采用屏幕的大小,将其位置设置为固定为0,0。这是为了防止滚动(除了隐藏/显示网址之外,它都有效)。
如果你想看一个例子,这里是我托管它的地方: http://phildogames.com/scratch/sust/index.html?game=window(您无法在桌面上进行互动,因为它正在侦听触摸事件,但如果您在移动设备上查看它,则应该能够打开和关闭窗口。)< / p>
tl; dr: 我想告诉浏览器只需将滑动(以及所有触摸事件)传递给dom,然后停止将其解释为滚动,切换标签,隐藏的意图/ show URL等..
谢谢!
答案 0 :(得分:1)
我能够通过简单地防止身体接触来解决您的问题。
var myBody = document.getElementById('dabody');
myBody.addEventListener('touchstart', function(e){
e.preventDefault()
});
您可以将其扔到控制台中进行测试。在iOS Safari和Android Chrome上测试。