基于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 相关文章推荐
学习YUI.Ext 第六天--关于树TreePanel(Part 1)
Mar 10 Javascript
Javascript打印网页部分内容的脚本
Nov 17 Javascript
浅析IE10兼容性问题(frameset的cols属性)
Jan 03 Javascript
JavaScript中统计Textarea字数并提示还能输入的字符
Jun 10 Javascript
js获取当前日期时间及其它操作汇总
Apr 17 Javascript
简介JavaScript中fixed()方法的使用
Jun 08 Javascript
js实现页面跳转的五种方法推荐
Mar 10 Javascript
Bootstrap导航条学习使用(一)
Feb 08 Javascript
Vue实现数字输入框中分割手机号码的示例
Oct 10 Javascript
抖音上用记事本编写爱心小程序教程
Apr 17 Javascript
JS中比Switch...Case更优雅的多条件判断写法
Sep 05 Javascript
JavaScript设计模式之门面模式原理与实现方法分析
Mar 09 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
阿拉伯的咖啡与水烟
2021/03/03 咖啡文化
JavaScript 新手24条实用建议[TUTS+]
2009/06/21 Javascript
用js实现计算加载页面所用的时间
2010/04/02 Javascript
jQuery 表格插件整理
2010/04/27 Javascript
js获取select标签的值且兼容IE与firefox
2013/12/30 Javascript
NodeJS学习笔记之Connect中间件应用实例
2015/01/27 NodeJs
jQuery实现流动虚线框的方法
2015/01/29 Javascript
jQuery的end()方法使用详解
2015/07/15 Javascript
jquery实现下拉框功能效果【实例代码】
2016/05/06 Javascript
JavaScript中关于for循环删除数组元素内容时出现的问题
2016/11/21 Javascript
基于jQuery实现滚动刷新效果
2017/01/09 Javascript
详解如何提高 webpack 构建 Vue 项目的速度
2017/07/03 Javascript
微信小程序实现底部导航
2018/11/05 Javascript
JS获取月的第几周和年的第几周实例代码
2018/12/05 Javascript
webpack自动打包和热更新的实现方法
2019/06/24 Javascript
解读Python编程中的命名空间与作用域
2015/10/16 Python
Python字符串格式化输出方法分析
2016/04/13 Python
python分割列表(list)的方法示例
2017/05/07 Python
Python中偏函数用法示例
2018/06/07 Python
Python+PyQT5的子线程更新UI界面的实例
2019/06/14 Python
matplotlib交互式数据光标实现(mplcursors)
2021/01/13 Python
英国家庭珠宝商:T. H. Baker
2018/02/08 全球购物
编辑硕士自荐信范文
2013/11/27 职场文书
工程专业求职自荐书范文
2014/02/08 职场文书
药品业务员岗位职责
2014/04/17 职场文书
幼儿评语大全
2014/04/30 职场文书
电子信息工程自荐信
2014/05/26 职场文书
物业保安岗位职责
2014/07/02 职场文书
煤矿开采专业求职信
2014/07/08 职场文书
竞选班干部演讲稿300字
2014/08/20 职场文书
上课不认真检讨书
2014/09/17 职场文书
软件研发工程师岗位职责
2014/09/30 职场文书
长城英文导游词
2015/01/30 职场文书
2015年重阳节主持词
2015/07/04 职场文书
golang中的空slice案例
2021/04/27 Golang
Python中的 Set 与 dict
2022/03/13 Python