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


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中阻止冒泡事件的方法介绍
Apr 12 Javascript
Js实现手机发送验证码时按钮延迟操作
Jun 20 Javascript
javascript实现图片跟随鼠标移动效果的方法
May 13 Javascript
JavaScript数组对象赋值用法实例
Aug 04 Javascript
js判断上传文件后缀名是否合法
Jan 28 Javascript
微信小程序 this和that详解及简单实例
Feb 13 Javascript
Android中Okhttp3实现上传多张图片同时传递参数
Feb 18 Javascript
Vue报错:Uncaught TypeError: Cannot assign to read only property’exports‘ of object’#‘的解决方法
Jun 17 Javascript
详解react、redux、react-redux之间的关系
Apr 11 Javascript
详解angular应用容器化部署
Aug 14 Javascript
js this 绑定机制深入详解
Apr 30 Javascript
JS继承实现方法及优缺点详解
Sep 02 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
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
2012/05/07 PHP
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
2013/06/18 PHP
JQUERY CHECKBOX全选,取消全选,反选方法三
2008/08/30 Javascript
工作中常用到的JS表单验证代码(包括例子)
2010/11/11 Javascript
js获取本机的外网/广域网ip地址完整源码
2013/08/12 Javascript
Javascript Objects详解
2014/09/04 Javascript
jQuery增加自定义函数的方法
2015/07/18 Javascript
js控制div层的叠加简单方法
2016/10/15 Javascript
详解react-router如何实现按需加载
2017/06/15 Javascript
vue滚动轴插件better-scroll使用详解
2017/10/17 Javascript
Node.js使用cookie保持登录的方法
2018/05/11 Javascript
基于vue 实现表单中password输入的显示与隐藏功能
2019/07/19 Javascript
使用vue3重构拼图游戏的实现示例
2021/01/25 Vue.js
利用numpy实现一、二维数组的拼接简单代码示例
2017/12/15 Python
python+matplotlib绘制3D条形图实例代码
2018/01/17 Python
Python基于property实现类的特性操作示例
2018/06/15 Python
python的sorted用法详解
2019/06/25 Python
python安装scipy的方法步骤
2019/06/26 Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
2019/09/10 Python
Python绘制组合图的示例
2020/09/18 Python
使用css3实现的tab选项卡代码分享
2014/12/09 HTML / CSS
爱普生美国官网:Epson美国
2018/11/05 全球购物
M.M.LaFleur官网:美国职业女装品牌
2020/10/27 全球购物
工程概预算专业毕业生求职信
2013/10/04 职场文书
项目合作协议书
2014/04/16 职场文书
产品开发计划书
2014/04/27 职场文书
行政专员求职信范文
2014/05/03 职场文书
化工专业自荐书
2014/06/16 职场文书
大学军训自我鉴定大全
2014/09/18 职场文书
党的群众路线批评与自我批评发言稿
2014/10/16 职场文书
工商局所长四风自我剖析及整改措施
2014/10/26 职场文书
四风专项整治工作情况汇报
2014/10/28 职场文书
在职证明格式样本
2015/06/15 职场文书
党员公开承诺书(2016最新版)
2016/03/24 职场文书
2019员工保密协议书(3篇)
2019/09/23 职场文书
Nginx隐藏式跳转(浏览器URL跳转后保持不变)
2022/04/07 Servers