基于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 相关文章推荐
获得所有表单值的JQuery实现代码[IE暂不支持]
May 24 Javascript
使用js获取地址栏中传递的值
Jul 02 Javascript
异步安全加载javascript文件的方法
Jul 21 Javascript
JS面向对象编程详解
Mar 06 Javascript
JS实现可编辑的后台管理菜单功能【附demo源码下载】
Sep 13 Javascript
JS实现的样式切换功能tableCSS实例
Dec 30 Javascript
JavaScript中数组常见操作技巧
Sep 01 Javascript
Angular17之Angular自定义指令详解
Jan 21 Javascript
layerUI下的绑定事件实例代码
Aug 17 Javascript
RequireJS用法简单示例
Aug 20 Javascript
小程序角标的添加及绑定购物车数量进行实时更新的实现代码
Dec 07 Javascript
vue实现一个获取按键展示快捷键效果的Input组件
Jan 13 Vue.js
基于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编码规范-php coding standard
2007/03/16 PHP
安装PHP可能遇到的问题“无法载入mysql扩展” 的解决方法
2007/04/16 PHP
php单例模式示例分享
2015/02/12 PHP
php将文件夹打包成zip文件的简单实现方法
2016/10/04 PHP
Laravel定时任务的每秒执行代码
2019/10/22 PHP
用脚本调用样式的几种方法
2006/12/09 Javascript
详解JavaScript正则表达式中的global属性的使用
2015/06/16 Javascript
JS文字球状放大效果代码分享
2015/08/19 Javascript
javascript特殊日历控件分享
2016/03/07 Javascript
javascript显示倒计时控制按钮的简单实现
2016/06/07 Javascript
详解AngularJS ng-class样式切换
2017/06/27 Javascript
vue.js $refs和$emit 父子组件交互的方法
2017/12/20 Javascript
微信小程序实现日历功能
2018/11/27 Javascript
jQuery实现模拟搜索引擎的智能提示功能简单示例
2019/01/27 jQuery
vue实现滑动切换效果(仅在手机模式下可用)
2020/06/29 Javascript
vue 父组件通过v-model接收子组件的值的代码
2019/10/27 Javascript
如何利用Node.js与JSON搭建简单的动态服务器
2020/06/16 Javascript
vue实现简单加法计算器
2020/10/22 Javascript
vue导入.md文件的步骤(markdown转HTML)
2020/12/31 Vue.js
python数据结构之二叉树的统计与转换实例
2014/04/29 Python
Python实现PS图像调整之对比度调整功能示例
2018/01/26 Python
python得到单词模式的示例
2018/10/15 Python
Django实现学员管理系统
2019/02/26 Python
用Python爬取QQ音乐评论并制成词云图的实例
2019/08/24 Python
python mysql 字段与关键字冲突的解决方式
2020/03/02 Python
python 判断txt每行内容中是否包含子串并重新写入保存的实例
2020/03/12 Python
css3实现六边形边框的实例代码
2019/05/24 HTML / CSS
移动端html5 meta标签的神奇功效
2016/01/06 HTML / CSS
英国最大的宠物食品和宠物用品网上零售商: Zooplus
2016/08/01 全球购物
荷兰美妆护肤品海淘网站:Beautinow(中文)
2020/11/22 全球购物
别名指示符是什么
2012/10/08 面试题
本科生个人求职自荐信
2013/09/26 职场文书
销售找工作求职信
2013/12/20 职场文书
组工干部演讲稿
2014/09/02 职场文书
CSS文本阴影 text-shadow 悬停效果详解
2022/05/25 HTML / CSS
Java处理延时任务的常用几种解决方案
2022/06/01 Java/Android