如何在手机上禁止浏览器的网页滚动

怎么写javascript和html才能禁止网页的上下,左右滚动啊,是在手机浏览器上,onmousewheel=“return false”在PC上有用,但在手机上没用,,用jquery mobile写可以吗?。。急求~~来个实际操作过的大神啊~~

已邀请:

huanghank

赞同来自: cdns20150714 bookseto wuer0520

一种方法:



html头部添加



<code><meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
</code>


然后将页面body的高度设为window的高度



<code> $("body").height( $(window).height() );
</code>


其他方法



页面高度超过设备可见高度时,阻止掉touchmove事件。



<code>document.body.addEventListener('touchmove', function (event) {
event.preventDefault();
}, false);
</code>

chenfulai

赞同来自: liugaode TrueMemories

我们都用这个overflow:hidden

wangxinghai

赞同来自: Paris0008

<code>document.addEventListener('touchmove', function(event) {
if(event.target.type == 'range') return;
event.preventDefault();
})
</code>

lisilzb

赞同来自: shiskype

document.body.addEventListener('touchmove'......


为什么要给body呢?给弹出层就好了

qudanjiang

赞同来自: a23036

头部:

<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">


CSS:

html,body{height:100%;overflow:hidden;}

dddjg

赞同来自:

有个问题,就是使用




document.body.addEventListener('touchmove', function (event) {

event.preventDefault(); }, false);

怎么取消?就算使用了移除事件,或者返回 真,都没办法再让页面滚动...有点郁闷.- -

都怪自己太笨...想了下,在阻止默认事件里面加个多条件




<code>javascript</code><code>document.addEventListener('touchmove', function(event) {
//判断条件,条件成立才阻止背景页面滚动,其他情况不会再影响到页面滚动
if(!$(".mask-photo").is(":hidden")){
event.preventDefault();
}
})
</code>

TrueMemories

赞同来自:

加监听事件touchmove,touchstart

fengsuiyingdong

赞同来自:

你找的是這個嗎?



CSS



overflow: hidden

royt123

赞同来自:

html>head



<code>    <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes" />
</code>


viewport可以控制用户在手机上两个手指缩放的行为范围,这行代码的意思是宽度为设备宽度,初始缩放为1,最大缩放也是1倍,用户不能缩放。



apple这行是告诉iOS这是个应用,就不会像网页一样可以滚动到顶部回弹一下的效果,就是可以看到苹果默认背景灰色部分的那个效果。如果你不需要可以删掉这行。



这里有个算是例子吧,一个简单的时钟,是离线的http://www.tychio.net/opportunity/

要回复问题请先登录注册