基于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中的一些注意事项 更新中
Dec 06 Javascript
JavaScript实现关键字高亮功能
Nov 12 Javascript
node.js中的fs.lstat方法使用说明
Dec 16 Javascript
浅析Bootstrap缩略图组件与警示框组件
Apr 29 Javascript
js表单登陆验证示例
Oct 19 Javascript
JavaScript中的子窗口与父窗口的互相调用问题
Feb 08 Javascript
AngularJS中filter的使用实例详解
Aug 25 Javascript
JS实现字符串去重及数组去重的方法示例
Apr 21 Javascript
原生实现一个react-redux的代码示例
Jun 08 Javascript
对vue v-if v-else-if v-else 的简单使用详解
Sep 29 Javascript
使用rollup打包JS的方法步骤
Dec 05 Javascript
vue进入页面时不在顶部,检测滚动返回顶部按钮问题及解决方法
Oct 30 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个人网站架设连环讲(一)
2006/10/09 PHP
一个更简单的无限级分类菜单代码
2007/01/16 PHP
PHP小程序自动提交到自助友情连接
2009/11/24 PHP
Memcache 在PHP中的使用技巧
2010/02/08 PHP
PHP文件上传原理简单分析
2011/05/29 PHP
php设置session值和cookies的学习示例
2014/03/21 PHP
Laravel6.0.4中将添加计划任务事件的方法步骤
2019/10/15 PHP
one.php 多项目、函数库、类库 统一为一个版本的方法
2020/08/24 PHP
PHP生成随机密码4种方法及性能对比
2020/12/11 PHP
javascript 函数式编程
2007/08/16 Javascript
学习javascript,实现插入排序实现代码
2011/07/31 Javascript
EasyUI中的tree用法介绍
2011/11/01 Javascript
jQuery 回车事件enter使用示例
2014/02/18 Javascript
jQuery添加/改变/移除CSS类及判断是否已经存在CSS
2014/08/20 Javascript
一个不错的仿携程自定义数据下拉选择select
2014/09/01 Javascript
JavaScript中pop()方法的使用教程
2015/06/09 Javascript
bootstrap学习使用(导航条、下拉菜单、轮播、栅格布局等)
2016/12/01 Javascript
解析js如何获取css样式
2016/12/11 Javascript
jQuery实现 上升、下降、删除、添加一行代码
2017/03/06 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
2018/10/01 Javascript
vue使用echarts图表的详细方法
2018/10/22 Javascript
vue中 this.$set的用法详解
2019/09/06 Javascript
webpack的 rquire.context用法实现工程自动化的方法
2020/02/07 Javascript
[01:00:30]TFT vs VGJ.T Supermajor 败者组 BO3 第一场 6.5
2018/06/06 DOTA
Python实现把xml或xsl转换为html格式
2015/04/08 Python
使用Python构建Hopfield网络的教程
2015/04/14 Python
根据tensor的名字获取变量的值方式
2020/01/04 Python
Python 找出出现次数超过数组长度一半的元素实例
2020/05/11 Python
专门经营化妆刷的美国彩妆品牌:Sigma Beauty
2017/09/11 全球购物
捷克鲜花配送:Florea.cz
2018/10/29 全球购物
人力资源总监工作说明
2014/03/03 职场文书
农民工预备党员思想汇报
2014/09/14 职场文书
2014年国庆晚会主持词
2014/09/19 职场文书
作风转变年心得体会
2014/10/22 职场文书
中职班主任培训心得体会
2016/01/07 职场文书
《初涉尘世》读后感3篇
2020/01/10 职场文书