原生js实现弹出层效果


Posted in Javascript onJanuary 20, 2017

知识要点

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>

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

Javascript 相关文章推荐
JavaScript常用的弹出广告及背投广告实现方法
Feb 06 Javascript
常用的Javascript数据验证插件
Aug 04 Javascript
jQuery拖动元素并对元素进行重新排序
Dec 30 Javascript
原生JS实现圆环拖拽效果
Apr 07 Javascript
基于js中的原型(全面讲解)
Sep 19 Javascript
Makefile/cmake/node-gyp中区分判断不同平台的方法
Dec 18 Javascript
微信小程序云开发之新手环境配置
May 16 Javascript
Node.js控制台彩色输出的方法与原理实例详解
Dec 01 Javascript
jQuery操作选中select下拉框的值代码实例
Feb 07 jQuery
前端 javascript 实现文件下载的示例
Nov 24 Javascript
vue前端和Django后端如何查询一定时间段内的数据
Feb 28 Vue.js
解决vue中provide inject的响应式监听
Apr 19 Vue.js
jQuery中DOM节点删除之empty与remove
Jan 20 #Javascript
原生js实现图片放大缩小计时器效果
Jan 20 #Javascript
详解基于angular路由的requireJs按需加载js
Jan 20 #Javascript
原生js实现新闻列表展开/收起全文功能
Jan 20 #Javascript
Vue.js实现表格动态增加删除的方法(附源码下载)
Jan 20 #Javascript
node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小
Jan 20 #Javascript
微信小程序通过api接口将json数据展现到小程序示例
Jan 20 #Javascript
You might like
php用header函数实现301跳转代码实例
2013/11/25 PHP
php编写批量生成不重复的卡号密码代码
2015/05/14 PHP
js中的内部属性与delete操作符介绍
2015/08/10 Javascript
jQuery实现Tab选项卡切换效果简单演示
2015/11/23 Javascript
JavaScript代码里的判断小结
2016/08/22 Javascript
JavaScript中数组slice和splice的对比小结
2016/09/22 Javascript
实例解析angularjs的filter过滤器
2016/12/14 Javascript
详解Python中logging日志模块在多进程环境下的使用
2016/12/26 Javascript
AngularJS基于MVC的复杂操作实例讲解
2017/12/31 Javascript
深入理解requireJS-实现一个简单的模块加载器
2018/01/15 Javascript
解析vue data不可以使用箭头函数问题
2018/07/03 Javascript
深度了解vue.js中hooks的相关知识
2019/06/14 Javascript
用 js 写一个 js 解释器过程详解
2019/08/02 Javascript
js实现轮播图效果 z-index实现轮播图
2020/01/17 Javascript
微信小程序报错: thirdScriptError的错误问题
2020/06/19 Javascript
JS实现鼠标按下拖拽效果
2020/07/23 Javascript
js实现页面导航层级指示效果
2020/08/25 Javascript
微信小程序之高德地图多点路线规划过程示例详解
2021/01/18 Javascript
Ruby元编程基础学习笔记整理
2016/07/02 Python
Python实现SSH远程登陆,并执行命令的方法(分享)
2017/05/08 Python
Python实现Pig Latin小游戏实例代码
2018/02/02 Python
详解python3中tkinter知识点
2018/06/21 Python
Win10+GPU版Pytorch1.1安装的安装步骤
2019/09/27 Python
利用css3 translate完美实现表头固定效果
2017/02/28 HTML / CSS
世界上最好的威士忌和烈性酒购买网站:The Whisky Exchange
2016/11/20 全球购物
中国包裹转运寄送国际服务:Famiboat
2019/07/24 全球购物
Footshop乌克兰:运动鞋的最大选择
2019/12/01 全球购物
工作批评与自我批评范文
2014/10/16 职场文书
幼儿园托班开学寄语(2016春季)
2015/12/03 职场文书
SQL Server连接查询的实用教程
2021/04/07 SQL Server
Python基础之Socket通信原理
2021/04/22 Python
Python机器学习之基础概述
2021/05/19 Python
分析Python感知线程状态的解决方案之Event与信号量
2021/06/16 Python
Redis源码阅读:Redis字符串SDS详解
2021/07/15 Redis
详解JavaScript中Arguments对象用途
2021/08/30 Javascript
SSM项目使用拦截器实现登录验证功能
2022/01/22 Java/Android