我怀疑大多数人都真的想禁用缩放/滚动,以提供更类似于应用程序的体验;因为答案似乎包含缩放和滚动解决方案的要素,但没人真正确定其中的一个。
卷动
为了回答OP,您似乎唯一需要做的就是禁用滚动功能,即拦截窗口scroll
和touchmove
事件,preventDefault
并stopPropagation
在它们生成的事件上进行调用和调用。像这样
window.addEventListener("scroll", preventMotion, false);
window.addEventListener("touchmove", preventMotion, false);
function preventMotion(event)
{
window.scrollTo(0, 0);
event.preventDefault();
event.stopPropagation();
}
并且在样式表中,确保您的body
和html
标签包括以下内容:
html:
{
overflow: hidden;
}
body
{
overflow: hidden;
position: relative;
margin: 0;
padding: 0;
}
缩放
但是,滚动是一回事,但您可能还想禁用缩放。在标记中对meta标签执行的操作:
<meta name="viewport" content="user-scalable=no" />
所有这些结合在一起,可为您提供类似于应用程序的体验,可能最适合画布。
(警惕一些建议添加属性像initial-scale
和width
元标记,如果您使用的是画布,画布因规模及其内容,不象块元素,你会得一个丑陋的帆布,往往不是)。