JS弹出层遮罩,隐藏背景页面滚动条细节优化分析


Posted in Javascript onApril 29, 2016

一、去除滚动条方法

给body添加overflow:hidden属性即可,IE6、7下不会生效,需要给html增加overflow:hidden属性

样式中需要对IE6、7及其它浏览器用hack辨别,这是因为当页面拉到下面时如果html或body被overflow:hidden,透明弹层下面的页面就会被部分正常隐藏,通过透明看到的一片的灰度,具体颜色跟平台及用户设置背景色有关。

body或html去掉滚动条后,页面会有一个滚动条宽度/2的跳动!这个跳动对用户体验来十分不好,因此给body添加一下右padding,大小为滚动条的宽度。windows平台下滚动条的宽度为17px,linux平台下不同滚动器滚动条宽度不一致,可以用相关代码计算出滚动条的宽度,以下以windows平台为例。

相关代码:

document.documentElement.style.cssText = ‘overflow:none;+overflow:hidden;_overflow:hidden;';
document.body.style.cssText = ‘overflow:hidden;+overflow:none;_overflow:none;padding:0 17px 0 0;';

以上代码不考虑html或body是否有内联样式 ,如果html或body有内联样式则需要累加,否则会清空原有样式。

二、去除隐患其它方法滚动页面(防止误操作)

隐藏滚动条后,用鼠标滚轮滚动页面确实不会动了,以为这就ok了,不是…

键盘快捷键也可以操作浏览器的一些操作,与滚动页面相关的,比如:上下按键、翻页按键等。针对键盘快捷键,需要取消他们的默认操作。

三、添加弹出层样式

给body添加全局样式(兼容IE6)

height:100%;

给弹层添加滚动样式

overflow-y: auto;
width: 100%;
height: 100%;
left:0;
_padding:0 17px 0 0;   //IE6bug,子元素绝对定位后对于父元素的padding依然有效

以上这篇JS弹出层遮罩,隐藏背景页面滚动条细节优化分析就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript函数库-集合框架
Apr 27 Javascript
JCalendar 日历控件 v1.0 beta[兼容IE&Firefox] 有文档和例子
May 30 Javascript
event.X和event.clientX的区别分析
Oct 06 Javascript
一个简单的js树形菜单
Dec 09 Javascript
基于jQuery判断两个元素是否有重叠部分的代码
Jul 25 Javascript
详解JavaScript中的4种类型识别方法
Sep 14 Javascript
JavaScript获取短信验证码(周期性)
Dec 29 Javascript
微信小程序开发入门基础教程
Apr 19 Javascript
JavaScript与Java正则表达式写法的区别介绍
Aug 15 Javascript
详解Js中的模块化是如何实现的
Oct 18 Javascript
vue开发chrome插件,实现获取界面数据和保存到数据库功能
Dec 01 Vue.js
小程序角标的添加及绑定购物车数量进行实时更新的实现代码
Dec 07 Javascript
老生常谈遮罩层 滚动条的问题
Apr 29 #Javascript
弹出遮罩层后禁止滚动效果【实现代码】
Apr 29 #Javascript
一系列Bootstrap导航条使用方法分享
Apr 29 #Javascript
Bootstrap实现下拉菜单效果
Apr 29 #Javascript
Easyui Treegrid改变默认图标的方法
Apr 29 #Javascript
Jquery EasyUI实现treegrid上显示checkbox并取选定值的方法
Apr 29 #Javascript
JS组件Bootstrap导航条使用方法详解
Apr 29 #Javascript
You might like
ADODB类使用
2006/11/25 PHP
ajax缓存问题解决途径
2006/12/06 PHP
php实现的简单压缩英文字符串的代码
2008/04/24 PHP
PHPMailer使用教程(PHPMailer发送邮件实例分析)
2012/12/06 PHP
国产PHP开发框架myqee新手快速入门教程
2014/07/14 PHP
PHP中Closure类的使用方法及详解
2015/10/09 PHP
关于Laravel Route重定向的一个注意点
2017/01/16 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
PHP使用SMTP邮件服务器发送邮件示例
2018/08/28 PHP
深入分析JSON编码格式提交表单数据
2015/06/25 Javascript
.NET微信公众号开发之创建自定义菜单
2015/07/16 Javascript
js格式化输入框内金额、银行卡号
2016/02/01 Javascript
详解Bootstrap插件
2016/04/25 Javascript
基于JQuery的$.ajax方法进行异步请求导致页面闪烁的解决办法
2016/05/10 Javascript
js获取当前页的URL与window.location.href简单方法
2017/02/13 Javascript
vuejs使用递归组件实现树形目录的方法
2017/09/30 Javascript
JavaScript实现省份城市的三级联动
2020/02/11 Javascript
vue Treeselect 树形下拉框:获取选中节点的ids和lables操作
2020/08/15 Javascript
Vant 中的Toast设置全局的延迟时间操作
2020/11/04 Javascript
Python中使用异常处理来判断运行的操作系统平台方法
2015/01/22 Python
python利用Guetzli批量压缩图片
2017/03/23 Python
Python基于正则表达式实现检查文件内容的方法【文件检索】
2017/08/30 Python
python基础教程项目三之万能的XML
2018/04/02 Python
Python的matplotlib绘图如何修改背景颜色的实现
2019/07/16 Python
Python3标准库之functools管理函数的工具详解
2020/02/27 Python
Python如何发送与接收大型数组
2020/08/07 Python
python3.8.3安装教程及环境配置的详细教程(64-bit)
2020/11/28 Python
基于CSS3的CSS 多栏(Multi-column)实现瀑布流源码分享
2014/06/11 HTML / CSS
CSS3 实现弹跳的小球动画
2020/10/26 HTML / CSS
在HTML5中使用MathML数学公式的简单讲解
2016/02/19 HTML / CSS
银行个人求职自荐信范文
2013/12/16 职场文书
艺术教育实施方案
2014/05/03 职场文书
机械电子工程专业求职信
2014/06/22 职场文书
亲子运动会的活动方案
2014/08/17 职场文书
捐资助学感谢信
2015/01/21 职场文书
Python中的min及返回最小值索引的操作
2021/05/10 Python