基于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 相关文章推荐
用javascript实现的仿Flash广告图片轮换效果
Apr 24 Javascript
js iframe跨域访问(同主域/非同主域)分别深入介绍
Jan 24 Javascript
javascript 弹出的窗口返回值给父窗口具体实现
Nov 23 Javascript
JS+CSS实现可拖拽的漂亮圆角特效弹出层完整实例
Feb 13 Javascript
javascript的列表切换【实现代码】
May 03 Javascript
JavaScript获取当前url根目录(路径)
Jun 17 Javascript
JS常用倒计时代码实例总结
Feb 07 Javascript
js前端日历控件(悬浮、拖拽、自由变形)
Mar 02 Javascript
微信小程序 动态绑定数据及动态事件处理
Mar 14 Javascript
js对象实例详解(JavaScript对象深度剖析,深度理解js对象)
Sep 21 Javascript
webpack引入eslint配置详解
Jan 22 Javascript
微信小程序实现翻牌抽奖动画
Sep 21 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的header和asp中的redirect比较
2006/10/09 PHP
php桌面中心(三) 修改数据库
2007/03/11 PHP
php 在线打包_支持子目录
2008/06/28 PHP
Memcached常用命令以及使用说明详解
2013/06/27 PHP
php通过执行CutyCapt命令实现网页截图的方法
2016/09/30 PHP
利用PHP判断文件是否为图片的方法总结
2017/01/06 PHP
PHP赋值的内部是如何跑的详解
2019/01/13 PHP
jQuery AJAX回调函数this指向问题
2010/02/08 Javascript
Jquery实现鼠标移上弹出提示框、移出消失思路及代码
2013/05/19 Javascript
在javascript中如何得到中英文混合字符串的长度
2014/01/17 Javascript
JQuery移动页面开发之屏幕方向改变与滚屏的实现
2015/12/03 Javascript
jQuery基于扩展简单实现倒计时功能的方法
2016/05/14 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
jquery实现焦点轮播效果
2017/02/23 Javascript
AngularJS学习笔记之表单验证功能实例详解
2017/07/06 Javascript
jQuery插件实现弹性运动完整示例
2018/07/07 jQuery
对vux点击事件的优化详解
2018/08/28 Javascript
vuex存值与取值的实例
2019/11/06 Javascript
JavaScript常用工具函数大全
2020/05/06 Javascript
js实现简单图片拖拽效果
2021/02/22 Javascript
[35:39]完美世界DOTA2联赛PWL S2 FTD.C vs Rebirth 第二场 11.22
2020/11/24 DOTA
python中实现数组和列表读取一列的方法
2018/04/03 Python
pandas 对series和dataframe进行排序的实例
2018/06/09 Python
Python中is和==的区别详解
2018/11/15 Python
django的分页器Paginator 从django中导入类
2019/07/25 Python
python3.7 openpyxl 删除指定一列或者一行的代码
2019/10/08 Python
Tensorflow训练MNIST手写数字识别模型
2020/02/13 Python
Python3爬虫里关于识别微博宫格验证码的知识点详解
2020/07/30 Python
Selenium alert 弹窗处理的示例代码
2020/08/06 Python
英国手机零售商:Carphone Warehouse
2018/06/06 全球购物
课堂教学改革实施方案
2014/03/17 职场文书
大四学生找工作的自荐信
2014/03/27 职场文书
销售经理工作失职检讨书
2014/10/24 职场文书
出纳年终工作总结2014
2014/12/05 职场文书
MySQL深度分页(千万级数据量如何快速分页)
2021/07/25 MySQL
Java 在生活中的 10 大应用
2021/11/02 Java/Android