基于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 相关文章推荐
jQuery学习笔记 更改jQuery对象
Sep 19 Javascript
jQuery实现的图文高亮滚动切换特效实例
Aug 10 Javascript
论JavaScript模块化编程
Mar 07 Javascript
CKEditor无法验证的解决方案(js验证+jQuery Validate验证)
May 09 Javascript
JS获取checkbox的个数简单实例
Aug 19 Javascript
使用Javascript判断浏览器终端设备(PC、IOS(iphone)、Android)
Jan 04 Javascript
JS+HTML5 FileReader实现文件上传前本地预览功能
Mar 27 Javascript
详解用node搭建简单的静态资源管理器
Aug 09 Javascript
vue2导航根据路由传值,而改变导航内容的实例
Nov 10 Javascript
vue实现点击追加选中样式效果
Nov 01 Javascript
JS+HTML5本地存储Localstorage实现注册登录及验证功能示例
Feb 10 Javascript
Vue.js中Line第三方登录api的实现代码
Jun 29 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转成EXE文件
2006/10/09 PHP
解析PHP留言本模块主要功能的函数说明(代码可实现)
2013/06/25 PHP
PHP中数组定义的几种方法
2013/09/01 PHP
Yii2中设置与获取别名的函数(setAlias和getAlias)用法分析
2016/07/25 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
限制textbox或textarea输入字符长度的JS代码
2013/10/16 Javascript
完美兼容各大浏览器的jQuery仿新浪图文淡入淡出间歇滚动特效
2014/11/12 Javascript
Nodejs Stream 数据流使用手册
2016/04/17 NodeJs
JS简单实现DIV相对于浏览器固定位置不变的方法
2016/06/17 Javascript
Bootstrap CSS布局之列表
2016/12/15 Javascript
jQuery实现判断控件是否显示的方法
2017/01/11 Javascript
微信小程序tabbar不显示解决办法
2017/06/08 Javascript
js实现打字小游戏
2019/12/17 Javascript
详解vue-router 动态路由下子页面多页共活的解决方案
2019/12/22 Javascript
vue实现打地鼠小游戏
2020/08/21 Javascript
Python入门篇之条件、循环
2014/10/17 Python
python在windows下实现ping操作并接收返回信息的方法
2015/03/20 Python
python使用装饰器和线程限制函数执行时间的方法
2015/04/18 Python
Python实现的数据结构与算法之基本搜索详解
2015/04/22 Python
python函数中return后的语句一定不会执行吗?
2017/07/06 Python
python实现分页效果
2017/10/25 Python
windows下Virtualenvwrapper安装教程
2017/12/13 Python
对python程序内存泄漏调试的记录
2018/06/11 Python
详解python单元测试框架unittest
2018/07/02 Python
python tornado微信开发入门代码
2018/08/24 Python
基于python-opencv3的图像显示和保存操作
2019/06/27 Python
python3在同一行内输入n个数并用列表保存的例子
2019/07/20 Python
Python数据可视化图实现过程详解
2020/06/12 Python
pycharm激活码2020最新分享适用pycharm2020最新版亲测可用
2020/11/22 Python
2014年圣诞节倒计时网页的制作过程
2014/12/05 HTML / CSS
Stührling手表官方网站:男女高品质时尚手表的领先零售商
2021/01/07 全球购物
单位在职证明范本
2014/01/09 职场文书
销售员试用期自我评价
2014/09/15 职场文书
幼儿园大班教师评语
2019/06/21 职场文书
JavaWeb 入门篇:创建Web项目,Idea配置tomcat
2021/07/16 Java/Android
Python 数据可视化之Bokeh详解
2021/11/02 Python