基于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 相关文章推荐
超酷的网页音乐播放器DewPlayer使用方法
Dec 18 Javascript
Javascript 类、命名空间、代码组织代码
Jul 31 Javascript
div模拟滚动条效果示例代码
Oct 16 Javascript
JavaScript中的条件判断语句使用详解
Jun 03 Javascript
JS中创建函数的三种方式及区别
Mar 13 Javascript
谈谈JavaScript中的几种借用方法
Aug 09 Javascript
vue.js+boostrap项目实践(案例详解)
Sep 21 Javascript
ajax的分页查询示例(不刷新页面)
Jan 11 Javascript
JS判断两个对象内容是否相等的方法示例
Apr 10 Javascript
node.js操作MongoDB的实例详解
Oct 11 Javascript
jQuery中内容过滤器简单用法示例
Mar 31 jQuery
详解vue2.6插槽更新v-slot用法总结
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
让PHP支持页面回退的两种方法[转]
2007/02/14 PHP
从Web查询数据库之PHP与MySQL篇
2009/09/25 PHP
IP138 IP地址查询小偷实现代码
2010/02/15 PHP
PHP创建多级目录的两种方法
2016/10/28 PHP
PHP设计模式之策略模式原理与用法实例分析
2019/04/04 PHP
学习YUI.Ext 第六天--关于树TreePanel(Part 1)
2007/03/10 Javascript
JavaScript 存在陷阱 删除某一区域所有节点
2010/05/10 Javascript
JavaScript四种调用模式和this示例介绍
2014/01/02 Javascript
javascript将相对路径转绝对路径示例
2014/03/14 Javascript
gridview生成时如何去掉style属性中的border-collapse
2014/09/30 Javascript
在HTML代码中使用JavaScript代码的例子
2014/10/16 Javascript
node.js抓取并分析网页内容有无特殊内容的js文件
2015/11/17 Javascript
JavaScript代码判断点击第几个按钮
2015/12/13 Javascript
浅析js的模块化编写 require.js
2016/12/07 Javascript
Html中 IFrame的用法及注意点
2016/12/22 Javascript
jQuery布局组件EasyUI Layout使用方法详解
2017/02/28 Javascript
Vue中定义全局变量与常量的各种方式详解
2017/08/23 Javascript
vue实现分页栏效果
2019/06/28 Javascript
jquery实现下载图片功能
2019/07/18 jQuery
layui实现tab的添加拒绝重复的方法
2019/09/04 Javascript
JS面向对象之单选框实现
2020/01/17 Javascript
vuecli项目构建SSR服务端渲染的实现
2020/10/30 Javascript
决策树的python实现方法
2014/11/18 Python
Python pygorithm模块用法示例【常见算法测试】
2018/08/16 Python
Python实现随机取一个矩阵数组的某几行
2019/11/26 Python
python图片验证码识别最新模块muggle_ocr的示例代码
2020/07/03 Python
python批量合成bilibili的m4s缓存文件为MP4格式 ver2.5
2020/12/01 Python
西班牙Polo衫品牌:Polo Club
2020/08/09 全球购物
养殖行业的创业计划书
2014/01/05 职场文书
企业总经理职责
2014/02/02 职场文书
大学社团招新的通讯稿
2014/09/10 职场文书
端午节寄语2015
2015/03/23 职场文书
上市公司财务总监岗位职责
2015/04/03 职场文书
火锅店的开业营销方案范本!
2019/07/05 职场文书
Nginx 路由转发和反向代理location配置实现
2021/11/11 Servers
MySQL Innodb索引机制详细介绍
2021/11/23 MySQL