基于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模仿msgbox提示效果代码
Jun 10 Javascript
javascript基于jQuery的表格悬停变色/恢复,表格点击变色/恢复,点击行选Checkbox
Aug 05 Javascript
Javascript 事件流和事件绑定
Jul 16 Javascript
js获取下拉列表框中的value和text的值示例代码
Jan 11 Javascript
使用GruntJS构建Web程序之Tasks(任务)篇
Jun 06 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
Oct 26 Javascript
理解Javascript图片预加载
Feb 23 Javascript
JS实现json的序列化和反序列化功能示例
Jun 13 Javascript
vue如何判断dom的class
Apr 26 Javascript
使用Vue的slot插槽分发父组件内容实现高度复用、更加灵活的组件(推荐)
May 01 Javascript
从理论角度讨论JavaScript闭包
Apr 03 Javascript
vue3实现v-model原理详解
Oct 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
PHP执行linux系统命令的常用函数使用说明
2010/04/27 PHP
PHP学习之正则表达式
2011/04/17 PHP
解决php使用异步调用获取数据时出现(错误c00ce56e导致此项操作无法完成)
2013/07/03 PHP
Javascript 去除数组的重复元素
2010/05/04 Javascript
javascript-表格排序(降序/反序)实现介绍(附图)
2013/05/30 Javascript
JavaScript获取当前日期是星期几的方法
2015/04/06 Javascript
WEB前端开发都应知道的jquery小技巧及jquery三个简写
2015/11/15 Javascript
JS设置下拉列表框当前所选值的方法
2015/12/22 Javascript
使用JavaScript获取URL中的参数(两种方法)
2016/11/16 Javascript
JavaScript数据结构之二叉查找树的定义与表示方法
2017/04/12 Javascript
详解Angular中的自定义服务Service、Provider以及Factory
2017/04/22 Javascript
使用JS编写的随机抽取号码的小程序
2017/08/11 Javascript
JavaScript使用math.js进行精确计算操作示例
2018/06/19 Javascript
如何根据业务封装自己的功能组件
2019/04/19 Javascript
解决layer弹出层自适应页面大小的问题
2019/09/16 Javascript
node解析修改nginx配置文件操作实例分析
2019/11/06 Javascript
怎么理解wx.navigateTo的events参数使用详情
2020/05/18 Javascript
Vue如何循环提取对象数组中的值
2020/11/18 Vue.js
给Python中的MySQLdb模块添加超时功能的教程
2015/05/05 Python
pymongo为mongodb数据库添加索引的方法
2015/05/11 Python
python实现提取百度搜索结果的方法
2015/05/19 Python
Python语法快速入门指南
2015/10/12 Python
Python中基础的socket编程实战攻略
2016/06/01 Python
浅谈flask截获所有访问及before/after_request修饰器
2018/01/18 Python
全面介绍python中很常用的单元测试框架unitest
2020/12/14 Python
用Python自动清理系统垃圾的实现
2021/01/18 Python
国外最大的眼镜网站:Coastal
2017/08/09 全球购物
武汉瑞得软件笔试题
2015/10/27 面试题
简单英文演讲稿
2014/01/01 职场文书
咖啡蛋糕店创业计划书
2014/01/28 职场文书
创业者迈进成功第一步:如何写创业计划书?
2014/03/22 职场文书
高一学生期末评语
2014/04/25 职场文书
优秀的应届生自荐信
2014/05/23 职场文书
辞职书格式样本
2015/02/26 职场文书
python通配符之glob模块的使用详解
2021/04/24 Python
Mac电脑OS系统下安装Nginx的详细教程
2022/04/14 Servers