博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
H5禁止页面滑动/滚动
阅读量:4598 次
发布时间:2019-06-09

本文共 954 字,大约阅读时间需要 3 分钟。

禁止页面滚动--完美解决方案,滚动条显示与否,手持设备兼容与否

禁止页面滚动 有三种方法
1,依靠css 将页面
document.documentElement.style.overflow='hidden';
 
document.body.style.overflow='hidden';//手机版设置这个。
如果设置了如上,页面的滚动条将会消失,此时鼠标滚轮失效。
但是 你用键盘的 上下左右键,你会发现,页面仍然可以滚动。 别着急 往下看
2,在 1 的基础上 添加 js功能
    var move=function(e){
e.preventDefault && e.preventDefault();
e.returnValue=false;
e.stopPropagation && e.stopPropagation();
return false;
    }
    var keyFunc=function(e){
if(37<=e.keyCode && e.keyCode<=40){
return move(e);
}
}
    document.body.οnkeydοwn=keyFunc;
好了 ,到了这里,你会发现页面木有任何问题了。鼠标,键盘 都不能将页面滚动。
不过....对于高级用户来说,仍然有问题,比如 继续往下看
 
3,假设用户希望 滚动条 一直处于显示状态 肿么办捏???? ok ,继续
    var st
    var scroll=function(e){
clearTimeout(st);
st=setTimeout(function(){
window.scrollTo(loc.scrollLeft,loc.scrollTop);
},5);
    }
    window.οnscrοll=scroll;
上述代码 可以似的 用户的任何滚动操作,都将被还原。注意这个方式很消耗内存(虽然做了setTimeout),但是谁让需求比较二逼呢对吧~
 
如果你是 非常高级的用户需求,比如 你希望你的网站仍然能够兼容 手机端呢????
上述是有问题的哦~~~~~~  卖个关子,接下来会写  手持设备兼容的解决方案。 

转载于:https://www.cnblogs.com/lxg0/p/5779451.html

你可能感兴趣的文章
Spring的Bean内部方法调用无法使用AOP切面(CacheAble注解失效)
查看>>
分布式事务之深入理解什么是2PC、3PC及TCC协议?
查看>>
Vim插件:Unite新手指导(译)
查看>>
pymysql实现MySQL与Python交互
查看>>
迭代器与生成器
查看>>
从DataTable到List<Model>(C#.net)
查看>>
JavaScript 垃圾回收机制分析
查看>>
CM+CDH安装教程(CentOS)
查看>>
C/C++中extern和static
查看>>
第一阶段linux结束
查看>>
网络流+二分图模板
查看>>
[MQ]关于ActiveMQ的配置
查看>>
tomcat部署Jenkins并配置jdk、maven、git
查看>>
Lintcode: Digit Counts
查看>>
Leetcode: House Robber
查看>>
adb命令
查看>>
矩阵乘法运算
查看>>
Java 日志组件(三)
查看>>
iphone中button按钮显示为圆形解决
查看>>
SharedPreferences.Editor 的apply()与commit()方法的区别
查看>>