纯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之jquery用法区别
Oct 03 Javascript
jquery写个checkbox——类似邮箱全选功能
Mar 19 Javascript
javascript生成随机数的方法
May 16 Javascript
JavaScript中实现继承的三种方式和实例
Jan 29 Javascript
简要了解jQuery移动web开发的响应式布局设计
Dec 04 Javascript
JS实现输入框提示文字点击时消失效果
Jul 19 Javascript
JavaScript中数组slice和splice的对比小结
Sep 22 Javascript
使用BootStrap实现标签切换原理解析
Mar 14 Javascript
使用vue点击li,获取当前点击li父辈元素的属性值方法
Sep 12 Javascript
Auto.JS实现抖音刷宝等刷视频app,自动点赞,自动滑屏,自动切换视频功能
May 08 Javascript
解决vue bus.$emit触发第一次$on监听不到问题
Jul 28 Javascript
JavaScript实例 ODO List分析
Jan 22 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
php编写一个简单的路由类
2011/04/13 PHP
PHP人民币金额数字转中文大写的函数代码
2013/02/27 PHP
php实现无限级分类
2014/12/24 PHP
Yii清理缓存的方法
2016/01/06 PHP
Laravel5.1框架路由分组用法实例分析
2020/01/04 PHP
基于Jquery 解决Ajax请求的页面 浏览器后退前进功能,页面刷新功能实效问题
2010/12/11 Javascript
node.js中的fs.fsyncSync方法使用说明
2014/12/15 Javascript
AngularJs学习第八篇 过滤器filter创建
2016/06/08 Javascript
jQuery EasyUI编辑DataGrid用combobox实现多级联动
2016/08/29 Javascript
实现JavaScript高性能的数据存储
2016/12/11 Javascript
聊聊Vue.js的template编译的问题
2017/10/09 Javascript
nodejs简单访问及操作mysql数据库的方法示例
2018/03/15 NodeJs
在react中使用vue的状态管理的方法示例
2020/05/02 Javascript
使用Vue-cli 中为单独页面设置背景图片铺满全屏
2020/07/17 Javascript
vue Cli 环境删除与重装教程 - 版本文档
2020/09/11 Javascript
常用python数据类型转换函数总结
2014/03/11 Python
Python基础教程之tcp socket编程详解及简单实例
2017/02/23 Python
windows系统下Python环境的搭建(Aptana Studio)
2017/03/06 Python
Python实现Linux的find命令实例分享
2017/06/04 Python
python 连接sqlite及简单操作
2017/06/30 Python
Queue 实现生产者消费者模型(实例讲解)
2017/11/13 Python
Python对CSV、Excel、txt、dat文件的处理
2018/09/18 Python
python的concat等多种用法详解
2018/11/28 Python
浅谈python新式类和旧式类区别
2019/04/26 Python
PyQt5+Caffe+Opencv搭建人脸识别登录界面
2019/08/28 Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
2020/09/29 Python
CSS3中HSL和HSLA的简单使用示例
2015/07/14 HTML / CSS
NBA欧洲商店(法国):NBA Europe Store FR
2016/10/19 全球购物
英国No.1体育用品零售商:SportsDirect.com
2019/10/16 全球购物
英国在线购买轮胎、预订汽车、汽车维修和装配网站:Protyre
2020/04/12 全球购物
几个数据库方面的面试题
2016/07/01 面试题
党员干部一句话承诺
2014/05/30 职场文书
捐资助学感谢信
2015/01/21 职场文书
2015年基层党建工作汇报材料
2015/06/25 职场文书
2019年家电促销广告语集锦
2019/10/21 职场文书
导游词之苏州寒山寺
2019/12/05 职场文书