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

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

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

路漫漫而修远兮啊

本文地址:https://www.stayed.cn/item/19866

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。