纯js实现遮罩层效果原理分析


Posted in Javascript onMay 27, 2014

可以说这个功能,在我理解了前面的“贪吃蛇”之后,实在是与刚开始想象的难度差了好多,当然是这种方式有取巧之嫌,终归是实现了功能,我们来进行分析整理

1、实现原理

本片文章的 是实现原理如下:

* 实际上弹出层、遮罩层和原页面显示分别为三个不同的div

* 弹出层的层级在遮罩层之上,遮罩层的层级在原页面显示之上;

* 遮罩层有通明效果

* 遮罩层没有实际意义,则无需在html部分就写上,当然写上同样可以实现

2、代码实现

html语言如下:

<html> .... 
<body> 
<center> 
<div ><input type="button" value="go" onclick="show()"></div> 
<div id="alert" style="display:none;"> 
<form> 
登录 
<input type="text"><input type="password"><input type="submit" value="login"> 
</form> 
</div> 
</center> 
</body> 
</html>

javascript实现弹出层和遮罩层:
<span style="font-size:12px;">function show(){ 
var alertPart=document.getElementById("alert"); 
alertPart.style.display="block"; 
alertPart.style.position = "absolute"; 
alertPart.style.top = "50%"; 
alertPart.style.left = "50%"; 
alertPart.style.marginTop = "-75px"; 
alertPart.style.marginLeft = "-150px"; 
alertPart.style.background="cyan"; 
alertPart.style.width="300px"; 
alertPart.style.height="200px"; 
alertPart.style.zIndex = "501"; var mybg = document.createElement("div"); 
mybg.setAttribute("id","mybg"); 
mybg.style.background = "#000"; 
mybg.style.width = "100%"; 
mybg.style.height = "100%"; 
mybg.style.position = "absolute"; 
mybg.style.top = "0"; 
mybg.style.left = "0"; 
mybg.style.zIndex = "500"; 
mybg.style.opacity = "0.3"; 
mybg.style.filter = "Alpha(opacity=30)"; 
document.body.appendChild(mybg); 
document.body.style.overflow = "hidden"; 
} 
</script></span>

这里用z-index来区分层级,opacity和filter:alpha(opacity=)透明度,document.createElement("div")和document.body.appendChild()这些都是在之前出现过,应用过的了,这样我们就能实现了,其实当原理明白了的那一刻,一切也就容易多了吧。

路漫漫而修远兮啊

Javascript 相关文章推荐
兼容IE/Firefox/Opera/Safari的检测页面装载完毕的脚本Ext.onReady的实现
Jul 14 Javascript
JQuery将文本转化成JSON对象需要注意的问题
May 09 Javascript
asp.net 30分钟掌握无刷新 Repeater
Sep 16 Javascript
使用原生js实现页面蒙灰(mask)效果示例代码
Jun 20 Javascript
JavaScript替换当前页面的方法
Apr 03 Javascript
JavaScript中pop()方法的使用教程
Jun 09 Javascript
清除输入框内的空格
Dec 21 Javascript
Angular4实现鼠标悬停3d倾斜效果
Oct 25 Javascript
jquery ui 实现 tab标签功能示例【测试可用】
Jul 25 jQuery
vue3 源码解读之 time slicing的使用方法
Oct 31 Javascript
Vue v-bind动态绑定class实例方法
Jan 15 Javascript
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
Jan 05 Vue.js
使用jquery animate创建平滑滚动效果(可以是到顶部、到底部或指定地方)
May 27 #Javascript
JQuery获取表格数据示例代码
May 26 #Javascript
chrome下img加载对height()的影响示例探讨
May 26 #Javascript
chrome下jq width()方法取值为0的解决方法
May 26 #Javascript
sliderToggle在写jquery的计时器setTimeouter中不生效
May 26 #Javascript
JQuery实现table行折叠效果以JSON做数据源
May 26 #Javascript
jquery attr方法获取input的checked属性问题
May 26 #Javascript
You might like
PHP 多维数组排序(usort,uasort)
2010/06/30 PHP
PHP输出多个元素的排列或组合的方法
2017/03/14 PHP
基于jQuery的固定表格头部的代码(IE6,7,8测试通过)
2010/05/18 Javascript
基于jquery的时间段实现代码
2012/08/02 Javascript
Extjs4中的分页应用结合前后台
2013/12/13 Javascript
用Jquery.load载入页面实现局部刷新
2014/01/22 Javascript
JavaScript中的对象的extensible属性介绍
2014/12/30 Javascript
js使用DOM操作实现简单留言板的方法
2015/04/10 Javascript
开启BootStrap学习之旅
2016/05/04 Javascript
详解基于Vue+Koa的pm2配置
2017/10/24 Javascript
浅谈mint-ui 填坑之路
2017/11/06 Javascript
浅谈vue-router2路由参数注意的问题
2017/11/08 Javascript
利用JQUERY实现多个AJAX请求等待的实例
2017/12/14 jQuery
js中事件对象和事件委托的介绍
2019/01/21 Javascript
vue实现微信浏览器左上角返回按钮拦截功能
2020/01/18 Javascript
微信小程序仿通讯录功能
2020/04/09 Javascript
JavaScript用document.write()输出换行的示例代码
2020/11/26 Javascript
在Python中使用zlib模块进行数据压缩的教程
2015/06/26 Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
2017/11/30 Python
python实现机械分词之逆向最大匹配算法代码示例
2017/12/13 Python
python实现简单登陆系统
2018/10/18 Python
python制作英语翻译小工具代码实例
2019/09/09 Python
pytorch对梯度进行可视化进行梯度检查教程
2020/02/04 Python
瑞士最大的图书贸易公司:Orell Füssli
2019/12/28 全球购物
Feelunique中文官网:欧洲最大化妆品零售电商
2020/07/10 全球购物
如何获取某个日期是当月的最后一天
2013/12/05 面试题
如何利用cmp命令比较文件
2013/09/23 面试题
给面试官的感谢信
2014/02/01 职场文书
主要负责人任命书
2014/06/06 职场文书
注册资产评估专业求职信
2014/07/16 职场文书
小学关爱留守儿童活动方案
2014/08/25 职场文书
环卫工作个人总结
2015/03/04 职场文书
2015年计划生育协会工作总结
2015/05/13 职场文书
学习十八大的感悟
2015/08/11 职场文书
Nginx禁止ip访问或非法域名访问
2022/04/07 Servers
零基础学java之方法的定义与调用详解
2022/04/10 Java/Android