原生js实现弹出层效果

发布时间 - 2026-01-10 22:40:23    点击率:

知识要点

1.遮罩层的宽度和高度是js获取页面的宽高(页面内容)

//获取遮罩层(内容)的高度和宽度
 var sHeight=document.documentElement.scrollHeight;
 var sWidth=document.documentElement.scrollWidth;

2.登录框设置静止定位fixed

3.登录框居中显示公式:(可视区域宽高-登录框宽高)/2

//获取login的宽度和高度并设置偏移值
 var dHeight=oLogin.offsetHeight;
 var dWidth=oLogin.offsetWidth;
 oLogin.style.left=(sWidth-dWidth)/2+"px";
 oLogin.style.top=(wHeight-dHeight)/2+"px";

完整代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>demo</title>
<style>
body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,button,input,textarea,th,td{margin:0;padding:0;}
body,button,input,select,textarea{font:12px/1.5 tahoma,arial,\5b8b\4f53;}
h1,h2,h3,h4,h5,h6{font-size:100%;}
address,cite,dfn,em,var{font-style:normal;}
code,kbd,pre,samp{font-family:courier new,courier,monospace;}
small{font-size:12px;}
ul,ol{list-style:none;}
a{text-decoration:none;}
a:hover{text-decoration:underline;}
sup{vertical-align:text-top;}
sub{vertical-align:text-bottom;}
legend{color:#000;}
fieldset,img{border:0;}
button,input,select,textarea{font-size:100%;}
table{border-collapse:collapse;border-spacing:0;}
.clear{clear: both;float: none;height: 0;overflow: hidden;}
p{font-size: 100px;}
#mask{
 background: #000;
 opacity: 0.75;
 filter: alpha(opacity=75);
 height: 1000px;
 width: 100%;
 position: absolute;
 left: 0;
 top: 0;
 z-index: 1000;
}
#login{
 position: fixed;
 left: 30%;
 top: 30%;
 z-index:1001; 
}
.loginCon{
 width: 670px;
 height: 380px;
 background: #fff;
 border:5px solid #F01400;
}
#close{
 width: 30px;
 height: 30px;
 background: blue;
 cursor: pointer;
 position: absolute;
 right: 10px;
 top: 10px;
}
#btnLogin{
 width: 80px;
 height: 40px;
 background: #F01400;
 margin:0 auto;
 display: block;
 cursor: pointer;
 border-style: none;
 color: #fff;
 font-size: 16px;
}
</style> 
</head> 
<body>
<button id="btnLogin">登录</button> 
<!--
<div id="mask"></div>
<div id="login">
 <div class="loginCon">
 <div id="close"></div>
 </div>
</div>
-->
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<p>1</p>
<script type="text/javascript">
function openNew(){
 //获取页面body!内容!的高度和宽度
 var sHeight=document.documentElement.scrollHeight;
 var sWidth=document.documentElement.scrollWidth;
 //获取可视区域高度,宽度与页面内容的宽度一样
 var wHeight=document.documentElement.clientHeight;
 //创建遮罩层div并插入body
 var oMask=document.createElement("div");
 oMask.id="mask";
 oMask.style.height=sHeight+"px";
 //宽度直接用100%在样式里
 document.body.appendChild(oMask);
 //创建登录层div并插入body
 var oLogin=document.createElement("div");
 oLogin.id="login";
 oLogin.innerHTML="<div class='loginCon'><div id='close'></div></div>"
 document.body.appendChild(oLogin);
 //获取login的宽度和高度并设置偏移值
 var dHeight=oLogin.offsetHeight;
 var dWidth=oLogin.offsetWidth;
 oLogin.style.left=(sWidth-dWidth)/2+"px";
 oLogin.style.top=(wHeight-dHeight)/2+"px";
 //获取关闭按钮
 var oClose=document.getElementById("close");
 oMask.onclick=oClose.onclick=function(){
  document.body.removeChild(oMask);
  document.body.removeChild(oLogin);
 }
}
window.onload=function(){
 var oBtn=document.getElementById("btnLogin");
 oBtn.onclick=function(){
  openNew();
 }
}
</script> 
</body> 
</html> 

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# js  # 弹出层  # js实现弹出层  # 原生js实现弹出层  # js制作带有遮罩弹出层实现登录注册表单特效代码分享  # js控制div弹出层实现方法  # JS简单实现动画弹出层效果  # 使用原生JS实现弹出层特效  # js与css实现弹出层覆盖整个页面的方法  # js实现div弹出层的方法  # Js Jquery创建一个弹出层可加载一个页面  # 使用js实现关闭js弹出层的窗口  # content  # text  # Type  # equiv 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: phpredis提高消息队列的实时性方法(推荐)  如何用花生壳三步快速搭建专属网站?  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  Internet Explorer官网直接进入 IE浏览器在线体验版网址  百度输入法ai组件怎么删除 百度输入法ai组件移除工具  Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】  如何在宝塔面板中修改默认建站目录?  EditPlus中的正则表达式实战(6)  如何在Windows 2008云服务器安全搭建网站?  Python面向对象测试方法_mock解析【教程】  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  Laravel如何实现本地化和多语言支持?(i18n教程)  如何用PHP快速搭建高效网站?分步指南  如何在IIS中新建站点并配置端口与IP地址?  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  详解Android——蓝牙技术 带你实现终端间数据传输  如何快速完成中国万网建站详细流程?  laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法  微信h5制作网站有哪些,免费微信H5页面制作工具?  动图在线制作网站有哪些,滑动动图图集怎么做?  如何快速打造个性化非模板自助建站?  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  昵图网官网入口 昵图网素材平台官方入口  如何确保西部建站助手FTP传输的安全性?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  网易LOFTER官网链接 老福特网页版登录地址  Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用  Laravel如何配置任务调度?(Cron Job示例)  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  Laravel如何使用查询构建器?(Query Builder高级用法)  非常酷的网站设计制作软件,酷培ai教育官方网站?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  如何在局域网内绑定自建网站域名?  Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】  网站制作价目表怎么做,珍爱网婚介费用多少?  猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  Laravel如何实现模型的全局作用域?(Global Scope示例)  奇安信“盘古石”团队突破 iOS 26.1 提权  桂林网站制作公司有哪些,桂林马拉松怎么报名?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  郑州企业网站制作公司,郑州招聘网站有哪些?  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  高端智能建站公司优选:品牌定制与SEO优化一站式服务