基于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解密入门之凭直觉解
Jun 25 Javascript
javascript appendChild,innerHTML,join性能比较代码
Aug 29 Javascript
基于JQuery的密码强度验证代码
Mar 01 Javascript
自己做的模拟模态对话框实现代码
May 23 Javascript
js保留小数点后几位的写法
Jan 03 Javascript
jQuery插件multiScroll实现全屏鼠标滚动切换页面特效
Apr 12 Javascript
利用jQuery对无序列表排序的简单方法
Oct 16 Javascript
ES6中Symbol类型用法实例详解
Apr 06 Javascript
JScript实现地址选择功能
Aug 15 Javascript
解决vue项目中type=”file“ change事件只执行一次的问题
May 16 Javascript
在vue里使用codemirror遇到的问题
Nov 01 Javascript
解决antd Form 表单校验方法无响应的问题
Oct 27 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
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
2006/10/09 PHP
PHP遍历二维数组的代码
2011/04/22 PHP
php Ubb代码编辑器函数代码
2012/07/05 PHP
自编函数解决pathinfo()函数处理中文问题
2014/11/03 PHP
PHP解压ZIP文件到指定文件夹的方法
2016/11/17 PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
2018/01/16 PHP
javascript IE中的DOM ready应用技巧
2008/07/23 Javascript
Javascript算符的优先级介绍
2013/03/20 Javascript
jQuery点击弹出下拉菜单的小例子
2013/08/01 Javascript
15条JavaScript最佳实践小结
2013/08/09 Javascript
javascript确认框的三种使用方法
2013/12/17 Javascript
解决ueditor jquery javascript 取值问题
2014/12/30 Javascript
jQuery监控文本框事件并作相应处理的方法
2015/04/16 Javascript
jQuery编程中的一些核心方法简介
2015/08/14 Javascript
跟我学习javascript的函数调用和构造函数调用
2015/11/16 Javascript
JS组件Form表单验证神器BootstrapValidator
2016/01/26 Javascript
给angular加上动画效遇到的问题总结
2016/02/17 Javascript
浅谈vue中.vue文件解析流程
2018/04/24 Javascript
vue中filters 传入两个参数 / 使用两个filters的实现方法
2019/07/15 Javascript
Smartour 让网页导览变得更简单(推荐)
2019/07/19 Javascript
微信小程序开发搜索功能实现(前端+后端+数据库)
2020/03/04 Javascript
[02:32]DOTA2亚洲邀请赛 VG战队巡礼
2015/02/03 DOTA
Python发送以整个文件夹的内容为附件的邮件的教程
2015/05/06 Python
使用django和vue进行数据交互的方法步骤
2019/11/11 Python
python可视化text()函数使用详解
2020/02/11 Python
python新式类和经典类的区别实例分析
2020/03/23 Python
python3 sleep 延时秒 毫秒实例
2020/05/04 Python
python pillow库的基础使用教程
2021/01/13 Python
俄罗斯茶和咖啡网上商店:Tea.ru
2021/01/26 全球购物
介绍一下Linux内核的排队自旋锁
2014/08/27 面试题
服装设计行业个人的自我评价
2013/12/20 职场文书
工厂车间标语
2014/06/19 职场文书
酒店管理失职检讨书
2014/09/16 职场文书
不遵守课堂纪律的检讨书
2014/09/24 职场文书
健康状况证明模板
2014/10/23 职场文书
2014年度培训工作总结
2014/11/27 职场文书