基于JavaScript如何制作遮罩层对话框


Posted in Javascript onJanuary 26, 2016

1.遮罩层其实就是一个覆盖全界面的半透明的DIV,并处理zIndex使他浮于其他元素之上,是用户不能点击下边的元素,或者说点击没有反应。

2.在遮罩层上方在弹出一个层,由于遮罩层挡住了其他所有元素,用户只能点击弹出层,制造出模式窗口的假象。

废话不多说了,直接给大家贴js代码了。

<htmlxmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/> 
<title>UntitledDocument</title> 
<script> 
function openDiv(newDivID) 
{ 
var newMaskID = "mask"; //遮罩层id 
var newMaskWidth =document.body.scrollWidth;//遮罩层宽度 
var newMaskHeight =document.body.scrollHeight;//遮罩层高度 
//mask遮罩层 
var newMask = document.createElement("div");//创建遮罩层 
newMask.id = newMaskID;//设置遮罩层id 
newMask.style.position = "absolute";//遮罩层位置 
newMask.style.zIndex = "1";//遮罩层zIndex 
newMask.style.width = newMaskWidth + "px";//设置遮罩层宽度 
newMask.style.height = newMaskHeight + "px";//设置遮罩层高度 
newMask.style.top = "0px";//设置遮罩层于上边距离 
newMask.style.left = "0px";//设置遮罩层左边距离 
newMask.style.background = "gray";//#33393C//遮罩层背景色 
newMask.style.filter = "alpha(opacity=40)";//遮罩层透明度IE 
newMask.style.opacity = "0.40";//遮罩层透明度FF 
document.body.appendChild(newMask);//遮罩层添加到DOM中 
window.open('http://www.baidu.com','_blank','width=500,height=260,menubar=no,toolbar=no');//弹出子页面,具体自用自改
//弹出层滚动居中 
function newDivCenter() 
{ 
newDiv.style.top = (document.body.scrollTop + document.body.clientHeight/2 
- newDivHeight/2) + "px"; 
newDiv.style.left = (document.body.scrollLeft + document.body.clientWidth/2 
- newDivWidth/2) + "px"; 
} 
if(document.all)//处理滚动事件,使弹出层始终居中 
{ 
window.attachEvent("onscroll",newDivCenter); 
} 
else 
{ 
window.addEventListener('scroll',newDivCenter,false); 
} 
//关闭新图层和mask遮罩层 
var newA = document.createElement("span"); 
newA.href = "#"; 
newA.style.position = "absolute";//span位置 
newA.style.left=350+ "px"; 
newA.innerHTML = "Close"; 
newA.onclick = function()//处理关闭事件 
{ 
if(document.all) 
{ 
window.detachEvent("onscroll",newDivCenter); 
} 
else 
{ 
window.removeEventListener('scroll',newDivCenter,false); 
} 
document.body.removeChild(newMask);//移除遮罩层 
document.body.removeChild(newDiv);////移除弹出框 
return false; 
} 
newDiv.appendChild(newA);//添加关闭span 
} 
</script> 
</head> 
<BODY> 
<a onclick="openDiv('newDiv');" style="cursor:pointer">点我点我</a> 
<br>
username:<input type="text" name="uname"/><br>
u p w d:<input type="password" name="upwd"/>
<br /><br /><br /><br /><br /><br /> 
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /> 
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /> 
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /> 
<br /><br /><br /><br /><br /><br /> 
<a onclick="openDiv('newDiv');" style="cursor:pointer">点我点我</a> 
</BODY> 
</html>

以上所述是小编给大家介绍的基于JavaScript如何制作遮罩层对话框 的相关知识,希望对大家有所帮助。

Javascript 相关文章推荐
原生js的弹出层且其内的窗口居中
May 14 Javascript
js 左右悬浮对联广告特效代码
Dec 12 Javascript
详细解读JavaScript的跨浏览器事件处理
Aug 12 Javascript
JS使用cookie实现DIV提示框只显示一次的方法
Nov 05 Javascript
基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标
Jan 22 Javascript
jQuery实现别踩白块儿网页版小游戏
Jan 18 Javascript
JS实现上传图片实时预览功能
May 22 Javascript
vue数据双向绑定的注意点
Jun 23 Javascript
如何实现一个webpack模块解析器
Oct 24 Javascript
js遍历详解(forEach, map, for, for...in, for...of)
Aug 28 Javascript
8个非常实用的Vue自定义指令
Dec 15 Vue.js
Three.js实现雪糕地球的使用示例详解
Jul 07 Javascript
基于Node.js实现nodemailer邮件发送
Jan 26 #Javascript
JavaScript小技巧整理篇(非常全)
Jan 26 #Javascript
基于canvas实现的绚丽圆圈效果完整实例
Jan 26 #Javascript
基于canvas实现的钟摆效果完整实例
Jan 26 #Javascript
js实现的页面矩阵图形变换特效
Jan 26 #Javascript
JS实现简单的二维矩阵乘积运算
Jan 26 #Javascript
探究Javascript模板引擎mustache.js使用方法
Jan 26 #Javascript
You might like
php Static关键字实用方法
2010/06/04 PHP
php 微信开发获取用户信息如何实现
2016/12/13 PHP
YII2框架中添加自定义模块的方法实例分析
2020/03/18 PHP
JS在IE和FF下attachEvent,addEventListener学习笔记
2009/11/26 Javascript
javascript 全选与全取消功能的实现代码
2012/12/23 Javascript
对于this和$(this)的个人理解
2013/09/08 Javascript
jquery垂直公告滚动实现代码
2013/12/08 Javascript
jquery使用append(content)方法注意事项分享
2014/01/06 Javascript
node.js中的fs.readFileSync方法使用说明
2014/12/15 Javascript
jQuery使用hide方法隐藏页面上指定元素的方法
2015/03/30 Javascript
Javascript中3个需要注意的运算符
2015/04/02 Javascript
一道关于JavaScript变量作用域的面试题
2016/03/08 Javascript
JS中判断null的方法分析
2016/11/21 Javascript
基于JavaScript实现图片剪切效果
2017/03/07 Javascript
完美解决UI-Grid表格元素中多个空格显示为一个空格的问题
2017/04/25 Javascript
Node.js中多进程模块Cluster的介绍与使用
2017/05/27 Javascript
vue+vux实现移动端文件上传样式
2017/07/28 Javascript
JS实现的文字间歇循环滚动效果完整示例
2018/02/13 Javascript
JavaScript 引用类型实例详解【数组、对象、严格模式等】
2020/05/13 Javascript
ant design vue datepicker日期选择器中文化操作
2020/10/28 Javascript
[52:26]完美世界DOTA2联赛决赛 FTD vs Phoenix 第一场 11.08
2020/11/11 DOTA
Python2.x版本中maketrans()方法的使用介绍
2015/05/19 Python
python自动化报告的输出用例详解
2018/05/30 Python
Python list列表中删除多个重复元素操作示例
2019/02/27 Python
pytorch点乘与叉乘示例讲解
2019/12/27 Python
英国在线自行车商店:Evans Cycles
2016/09/26 全球购物
美国知名珠宝首饰品牌:Gemvara
2017/10/06 全球购物
请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值
2014/09/15 面试题
中药专业毕业自荐书范文
2014/02/08 职场文书
书香校园活动方案
2014/02/28 职场文书
建筑工地门卫岗位职责
2014/04/30 职场文书
卫生院健康教育实施方案
2014/06/07 职场文书
关于青春的演讲稿800字
2014/08/22 职场文书
2016年度员工工作表现评语
2015/12/02 职场文书
MySQL分库分表详情
2021/09/25 MySQL
SONY AN-LP1 短波有源天线放大器图
2022/04/05 无线电