老生常谈遮罩层 滚动条的问题


Posted in Javascript onApril 29, 2016

今天遇到的问题是,在弹出层后面的 遮罩层,因为有滚动条,导致滚动条下面不可视区域没有遮罩层,解决方式是加的css。

js代码

<script type="text/javascript"> 

//显示灰色JS遮罩层 

function showBg(ct,content){

 

var bH=$(document).height(); 

var bW=$("body").width()+16; 

var objWH=getObjWh(ct); 

$("#fullbg").css({width:bW,height:bH,display:"block"}); 

var tbT=objWH.split("|")[0]+"px"; 

var tbL=objWH.split("|")[1]+"px"; 

$("#dialog").show();

$("#"+ct).css({top:tbT,left:tbL,display:"block"}); 

 

$(window).scroll(function(){resetBg()}); 

$(window).resize(function(){resetBg()}); 

} 

function getObjWh(obj){ 

var st=document.documentElement.scrollTop;//滚动条距顶部的距离 

var sl=document.documentElement.scrollLeft;//滚动条距左边的距离 

var ch=document.documentElement.clientHeight;//屏幕的高度 

var cw=document.documentElement.clientWidth;//屏幕的宽度 

var objH=$("#"+obj).height();//浮动对象的高度 

var objW=$("#"+obj).width();//浮动对象的宽度




var objT=Number(st)+(Number(ch)-Number(objH))/2; 

var objL=Number(sl)+(Number(cw)-Number(objW))/2; 

return objT+"|"+objL; 

} 

function resetBg(){ 

var fullbg=$("#fullbg").css("display"); 

if(fullbg=="block"){ 

var bH2=$("body").height(); 

var bW2=$("body").width()+16; 

$("#fullbg").css({width:bW2,height:bH2}); 

var objV=getObjWh("dialog"); 

var tbT=objV.split("|")[0]+"px"; 

var tbL=objV.split("|")[1]+"px"; 

$("#dialog").css({top:tbT,left:tbL}); 

} 

} 




//关闭灰色JS遮罩层和操作窗口

function closeBg(){ 

$("#fullbg").css("display","none"); 

$("#dialog").css("display","none");

} 




</script>

css代码

#fullbg{ 

background-color: Gray; 

display:none; 

z-index:3; 

left:0px; 

opacity:0.5; top:0; left:0;height:100%; width:100%; z-index:999; position:fixed; _position:absolute; _left: expression_r(documentElement.scrollLeft + documentElement.clientWidth - this.offsetWidth); _top: expression_r(documentElement.scrollTop + documentElement.clientHeight - this.offsetHeight);

filter:Alpha(Opacity=30); 

opacity: 0.3; 

} 




#dialog { 

width:560px; 

background:#eee; 

display: none; 

z-index: 5; 

padding:16px;

font-size:12px;

z-index:1000; position:absolute;

}

#dialog sup{ color:#f00;}

#dialog .close0{ position:relative; top:-24px; left:544px; height:38px; width:40px;}

html代码

<div id="fullbg"></div> 

<!-- end JS遮罩层 --> 

<!-- 对话框 --> 

<div id="dialog">

<div class="close0"><a href="#" onclick="closeBg();"><img src="__IMG__/close.png" /></a></div> 

<div id="dialog_content">

<h3>个人信息</h3>

<p>(备注:以下信息我们只用于根据需要给您发送相关服务材料,不会对外泄密,敬请理解)</p>

<table width="555" border="0" cellspacing="1" cellpadding="0" class="yh_table">

       <tr>

        <td width="65" bgcolor="#eeeeee"><sup>*</sup>用户ID</td>

        <td width="100" bgcolor="#fbfbfb"><b>{$member.MEMBER_NAME}</b></td>

        <td width="65" bgcolor="#eeeeee"><sup>*</sup>真实姓名</td>

        <td width="80" bgcolor="#fbfbfb"><b>{$info.NAMES}</b></td>

        <td width="60" bgcolor="#eeeeee">性别</td>

        <td bgcolor="#fbfbfb"><b><php>echo $gender[$info['GENDER']];</php></b></td>

       </tr>

       <tr>

        <td bgcolor="#eeeeee"><sup>*</sup>手机号码</td>

        <td bgcolor="#fbfbfb"><b>{$info.TELEPHONE}</b></td>

        <td bgcolor="#eeeeee">电子邮箱</td>

        <td colspan="3" bgcolor="#fbfbfb"><b>{$member.EMAIL}</b></td>

       </tr>

       <tr>

        <td colspan="2" bgcolor="#eeeeee"><sup>*</sup>有效证件(身份证)</td>

        <td colspan="4" bgcolor="#fbfbfb"><b>{$info.IDS}</b></td>

       </tr>

       <tr>

        <td bgcolor="#eeeeee">通讯地址</td>

        <td colspan="3" bgcolor="#fbfbfb"><b>{$info.ADDRESS}</b></td>

        <td bgcolor="#eeeeee">邮编</td>

        <td bgcolor="#fbfbfb"><b>{$info.ZIPS}</b></td>

       </tr>

      </table>

</div> 




</div>

静下心来,循序渐进。

以上这篇老生常谈遮罩层 滚动条的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JQuery 引发两次$(document.ready)事件
Jan 15 Javascript
利用div+jquery自定义滚动条样式的2种方法
Jul 18 Javascript
使用JavaScript 实现的人脸检测
Mar 24 Javascript
jQuery选择器源码解读(六):Sizzle选择器匹配逻辑分析
Mar 31 Javascript
React Native实现简单的登录功能(推荐)
Sep 19 Javascript
详谈js对url进行编码和解码(三种方式的区别)
Aug 16 Javascript
详解webpack打包第三方类库的正确姿势
Oct 20 Javascript
[原创]微信小程序获取网络类型的方法示例
Mar 01 Javascript
vxe-table vue table 表格组件功能
May 26 Javascript
JQuery插件tablesorter表格排序实现过程解析
May 28 jQuery
vue实现登录功能
Dec 31 Vue.js
如何利用React实现图片识别App
Feb 18 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
Treegrid的动态加载实例代码
Apr 29 #Javascript
You might like
rephactor 优秀的PHP的重构工具
2011/06/09 PHP
php学习之简单计算器实现代码
2011/06/09 PHP
php实现专业获取网站SEO信息类实例
2015/04/02 PHP
Yii实现显示静态页的方法
2016/04/25 PHP
深入解析PHP中SESSION反序列化机制
2017/03/01 PHP
Prototype Class对象学习
2009/07/19 Javascript
$.format,jquery.format 使用说明
2011/07/13 Javascript
Moment.js 不容错过的超棒Javascript日期处理类库
2012/04/15 Javascript
关于js中alert弹出窗口文本换行问题简单详细说明
2012/12/11 Javascript
JS打开新窗口防止被浏览器阻止的方法
2015/01/03 Javascript
NodeJS学习笔记之Connect中间件模块(一)
2015/01/27 NodeJs
jQuery bt气泡实现悬停显示及移开隐藏功能的方法
2016/07/12 Javascript
js实现多图左右切换功能
2016/08/04 Javascript
详解JS-- 浮点数运算处理
2016/11/28 Javascript
assert()函数用法总结(推荐)
2017/01/25 Javascript
jquery实现搜索框功能实例详解
2018/07/23 jQuery
通过jquery的ajax请求本地的json文件方法
2018/08/08 jQuery
简单实现vue中的依赖收集与响应的方法
2019/02/18 Javascript
django使用图片延时加载引起后台404错误
2017/04/18 Python
Python实现自动登录百度空间的方法
2017/06/10 Python
python实现各进制转换的总结大全
2017/06/18 Python
对Python 文件夹遍历和文件查找的实例讲解
2018/04/26 Python
使用python实现抓取腾讯视频所有电影的爬虫
2019/04/15 Python
简单了解Pandas缺失值处理方法
2019/11/16 Python
利用pyshp包给shapefile文件添加字段的实例
2019/12/06 Python
Python 项目转化为so文件实例
2019/12/23 Python
python matplotlib中的subplot函数使用详解
2020/01/19 Python
python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例
2020/02/28 Python
Python集成开发工具Pycharm的安装和使用详解
2020/03/18 Python
业绩考核岗位职责
2014/02/01 职场文书
勤奋学习演讲稿
2014/05/10 职场文书
2016春节家属慰问信
2015/03/25 职场文书
2015年档案室工作总结
2015/05/23 职场文书
Mysql基础知识点汇总
2021/05/26 MySQL
Python实现天气查询软件
2021/06/07 Python
探讨Java中的深浅拷贝问题
2021/06/26 Java/Android