这篇文章主要介绍了纯js实现遮罩层效果,下面就它的原理做下分析,感兴趣的朋友可以参考下
可以说这个功能,在我理解了前面的“贪吃蛇”之后,实在是与刚开始想象的难度差了好多,当然是这种方式有取巧之嫌,终归是实现了功能,我们来进行分析整理

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()这些都是在之前出现过,应用过的了,这样我们就能实现了,其实当原理明白了的那一刻,一切也就容易多了吧。

路漫漫而修远兮啊
最新资讯
缺斤少两农残超标 盒马每日优鲜等7家买菜App被点名

缺斤少两农残超标 盒

近期,杭州市消保委选取部分在杭州城区能提供1小时送达
腾讯音乐、网易云音乐要挣钱 得先争版权

腾讯音乐、网易云音乐

音乐版权发行业务孵化的背后,是传统唱片公司与互联网音
周鸿祎:360将专注解决网络雷达问题 正研发防御系统

周鸿祎:360将专注解决

周鸿祎在参加“强网论坛”时透露,近几年360在网络攻击
中国电影票房9年来首现负增长 观影人次同期减约1亿

中国电影票房9年来首

2019年1-5月,中国电影分账票房(不含服务费)累计249.41亿
哈啰:未开展助力车投资返利业务 受骗用户及时报警

哈啰:未开展助力车投资

哈啰出行从未开展或授权任何主体开展认购车辆投资返利
华为被限制后 博通下调了20亿美元的营收预期

华为被限制后 博通下

据悉,2018年博通与华为的总销售额约为9亿美元。
最新文章
JavaScript解析及序列化JSON的方法实例分析

JavaScript解析及序列

这篇文章主要介绍了JavaScript解析及序列化JSON的方法
如何为vuex实现带参数的 getter和state.commit

如何为vuex实现带参数

这篇文章主要介绍了如何为vuex实现带参数的getter和st
使用VUE+iView+.Net Core上传图片的方法示例

使用VUE+iView+.Net C

这篇文章主要介绍了使用VUE+iView+.Net Core上传图片
JS实现的获取银行卡号归属地及银行卡类型操作示例

JS实现的获取银行卡号

这篇文章主要介绍了JS实现的获取银行卡号归属地及银行
Angular6 用户自定义标签开发的实现方法

Angular6 用户自定义

这篇文章主要介绍了Angular6 用户自定义标签开发的实
React 实现拖拽功能的示例代码

React 实现拖拽功能的

这篇文章主要介绍了React 实现拖拽功能的示例代码,小编