javascript - 如何在手机上禁止浏览器的网页滚动
PHP中文网
PHP中文网 2017-04-10 13:10:11
[JavaScript讨论组]

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

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(12)
PHP中文网

你找的是這個嗎?

CSS

overflow: hidden

怪我咯

一种方法:

html头部添加

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

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

 $("body").height( $(window).height() );

其他方法

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

document.body.addEventListener('touchmove', function (event) {
    event.preventDefault();
}, false);
天蓬老师

我们都用这个overflow:hidden

PHPz

加监听事件touchmove,touchstart

黄舟

头部:

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

CSS:

html,body{height:100%;overflow:hidden;}
PHP中文网
document.addEventListener('touchmove', function(event) {
    if(event.target.type == 'range') return;
    event.preventDefault();
})
黄舟

有个问题,就是使用

document.body.addEventListener('touchmove', function (event) {
event.preventDefault(); }, false);
怎么取消?就算使用了移除事件,或者返回 真,都没办法再让页面滚动...有点郁闷.- -
都怪自己太笨...想了下,在阻止默认事件里面加个多条件

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

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

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

怪我咯

用$("body").bind("touchmove",function(event){event.preventDefault;//code});取消了body的拖动事件。

恢复这个拖动事件只要$("body").unbind("touchmove");

非常实用。

大家讲道理
阻止默认
$("body").on("touchmove",function(event){
event.preventDefault;
}, false)

然后点击取消或者确定时再取消body上的绑定
$("body").off("touchmove");
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号