纯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 相关文章推荐
JQuery 写的个性导航菜单
Dec 24 Javascript
jquery实现更改表格行顺序示例
Apr 30 Javascript
JavaScript调试工具汇总
Dec 23 Javascript
jQuery鼠标事件汇总
Aug 30 Javascript
JavaScript实现点击单元格改变背景色的方法
Feb 12 Javascript
Javascript实现图片不间断滚动的代码
Jun 22 Javascript
jQuery 插件封装的方法
Nov 16 Javascript
IScroll5实现下拉刷新上拉加载的功能实例
Aug 11 Javascript
JavaScript中的高级函数
Jan 04 Javascript
axios拦截设置和错误处理方法
Mar 05 Javascript
基于layui的下拉列表的数据回显方法
Sep 24 Javascript
vue v-for直接循环数字实例
Nov 07 Javascript
使用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
thinkphp框架page类与bootstrap分页(美化)
2017/06/25 PHP
为何说PHP引用是个坑,要慎用
2018/04/02 PHP
PHP中soap用法示例【SoapServer服务端与SoapClient客户端编写】
2018/12/25 PHP
ThinkPHP5.1表单令牌Token失效问题的解决
2019/03/22 PHP
JavaScript 闭包在封装函数时的简单分析
2009/11/28 Javascript
JS request函数 用来获取url参数
2010/05/17 Javascript
JavaScript类型转换方法及需要注意的问题小结(挺全面)
2010/11/11 Javascript
基于angular中的重要指令详解($eval,$parse和$compile)
2016/10/21 Javascript
JS焦点图,JS 多个页面放多个焦点图的实例
2016/12/08 Javascript
jQuery焦点图左右转换效果
2016/12/12 Javascript
webpack入门+react环境配置
2017/02/08 Javascript
Angular实现图片裁剪工具ngImgCrop实践
2017/08/17 Javascript
动态Axios的配置步骤详解
2018/01/12 Javascript
Vue图片浏览组件v-viewer用法分析【支持旋转、缩放、翻转等操作】
2019/11/04 Javascript
Bootstrap告警框(alert)实现弹出效果和短暂显示后上浮消失的示例代码
2020/08/27 Javascript
javascript前端实现多视频上传
2020/12/13 Javascript
[01:08]DOTA2次级职业联赛 - Wings 战队宣传片
2014/12/01 DOTA
python实现批量处理将图片粘贴到另一张图片上并保存
2019/12/12 Python
基于python及pytorch中乘法的使用详解
2019/12/27 Python
python中count函数简单的实例讲解
2020/02/06 Python
python re模块匹配贪婪和非贪婪模式详解
2020/02/11 Python
Python PyQt5运行程序把输出信息展示到GUI图形界面上
2020/04/27 Python
基于Python中random.sample()的替代方案
2020/05/23 Python
Python制作简单的剪刀石头布游戏
2020/12/10 Python
CSS3实现王者荣耀匹配人员加载页面的方法
2019/04/16 HTML / CSS
法国和欧洲海边和滑雪度假:Pierre & Vacances
2017/01/04 全球购物
深圳-东方伟业笔试部分
2015/02/11 面试题
长辈证婚人证婚词
2014/01/09 职场文书
工商局领导班子存在的问题整改措施思想汇报
2014/10/05 职场文书
群众路线四风自我剖析材料
2014/10/08 职场文书
初中班主任工作总结2015
2015/05/13 职场文书
美丽心灵观后感
2015/06/01 职场文书
学风建设主题班会
2015/08/17 职场文书
如何书写读后感?(附范文)
2019/07/26 职场文书
创业计划书之餐饮
2019/09/02 职场文书
MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函数的使用详解
2021/06/26 MySQL