基于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 相关文章推荐
dotopAlert 提示用户需安装播放器的代码
Sep 17 Javascript
JQuery实现简单时尚快捷的气泡提示插件
Dec 20 Javascript
JavaScript DSL 流畅接口(使用链式调用)实例
Mar 15 Javascript
把Node.js程序加入服务实现随机启动
Jun 25 Javascript
Bootstrap模态框使用详解
Feb 15 Javascript
bootstrap警告框示例代码分享
May 17 Javascript
Vue-cli proxyTable 解决开发环境的跨域问题详解
May 18 Javascript
详解Vue前端生产环境发布配置实战篇
May 07 Javascript
JS co 函数库的含义和用法实例总结
Apr 08 Javascript
Node.js API详解之 timer模块用法实例分析
May 07 Javascript
解决Echarts2竖直datazoom滑动后显示数据不全的问题
Jul 20 Javascript
JavaScript快速调试的两个技巧
Nov 04 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 数组排序方法总结 推荐收藏
2010/06/30 PHP
Zend Studio 实用快捷键一览表(精心整理)
2013/08/10 PHP
php中simplexml_load_file函数用法实例
2014/11/12 PHP
php生成随机颜色方法汇总
2014/12/03 PHP
php实现用手机关闭计算机(电脑)的方法
2015/04/22 PHP
PHP面向对象之事务脚本模式(详解)
2017/06/07 PHP
laravel框架使用极光推送消息操作示例
2020/02/15 PHP
用JS实现的一个include函数
2007/07/21 Javascript
js form 验证函数 当前比较流行的错误提示
2009/06/23 Javascript
javascript 模拟JQuery的Ready方法实现并出现的问题
2009/12/06 Javascript
jquery 回车事件实现代码
2011/08/23 Javascript
引入autocomplete组件时JS报未结束字符串常量错误
2014/03/19 Javascript
jQuery对象的length属性用法实例
2014/12/27 Javascript
jquery 设置style:display的方法
2015/01/29 Javascript
js获取字符串字节数方法小结
2015/06/09 Javascript
JavaScript的面向对象编程基础
2015/08/13 Javascript
每天一篇javascript学习小结(面向对象编程)
2015/11/20 Javascript
JavaScript生成图形验证码
2020/08/24 Javascript
JavaScript实现简单图片轮播效果
2017/08/21 Javascript
如何理解Vue的v-model指令的使用方法
2018/07/19 Javascript
一次Webpack配置文件的分离实战记录
2018/11/30 Javascript
原生JS实现无缝轮播图片
2020/06/24 Javascript
wxPython学习之主框架实例
2014/09/28 Python
python实现C4.5决策树算法
2018/08/29 Python
Django上使用数据可视化利器Bokeh解析
2019/07/31 Python
python 生成器和迭代器的原理解析
2019/10/12 Python
美国最大的在线寄售和旧货店:Swap.com
2018/08/27 全球购物
Myprotein荷兰官网:欧洲第一运动营养品牌
2020/07/11 全球购物
主持人演讲稿范文
2013/12/28 职场文书
《九色鹿》教学反思
2014/02/27 职场文书
团代会主持词
2014/04/02 职场文书
今冬明春火灾防控工作方案
2014/05/29 职场文书
八年级数学教学反思
2016/02/17 职场文书
大学生饮品店创业计划书范文
2019/07/10 职场文书
两行代码解决Jupyter Notebook中文不能显示的问题
2021/04/24 Python
mysql中between的边界,范围说明
2021/06/08 MySQL