原生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 相关文章推荐
原生JS操作网页给p元素添加onclick事件及表格隔行变色
Dec 01 Javascript
动态的绑定事件addEventListener方法的使用
Jan 24 Javascript
JS显示表格内指定行html代码的方法
Mar 31 Javascript
JavaScript中isPrototypeOf函数作用和使用实例
Jun 01 Javascript
jQuery插件制作之全局函数用法实例
Jun 01 Javascript
JavaScript中的bold()方法使用详解
Jun 08 Javascript
jQuery实现的简单分页示例
Jun 01 Javascript
Bootstrap CSS布局之表格
Dec 17 Javascript
Javascript 高性能之递归,迭代,查表法详解及实例
Jan 08 Javascript
jQuery层级选择器实例代码
Feb 06 Javascript
webpack写jquery插件的环境配置
Dec 21 jQuery
解决vue2中使用axios http请求出现的问题
Mar 05 Javascript
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 日期和时间的处理-郑阿奇(续)
2011/07/04 PHP
PHP计数器的实现代码
2013/06/08 PHP
php指定函数参数默认值示例代码
2013/12/04 PHP
文本框中,回车键触发事件的js代码[多浏览器兼容]
2010/06/07 Javascript
JavaScript中的私有/静态属性介绍
2012/07/26 Javascript
js控制滚动条缓慢滚动到顶部实现代码
2013/03/20 Javascript
javascript中自定义对象的属性方法分享
2013/07/12 Javascript
单元选择合并变色示例代码
2014/05/26 Javascript
使用jQuery判断IE浏览器版本的代码
2014/06/14 Javascript
JS实现文字掉落效果的方法
2015/05/06 Javascript
JavaScript中0和&quot;&quot;比较引发的问题
2016/05/26 Javascript
js获取当前年月日-YYYYmmDD格式的实现代码
2016/06/01 Javascript
Javascript中arguments对象的详解与使用方法
2016/10/04 Javascript
Ajax的概述与实现过程
2016/11/18 Javascript
微信小程序 网络请求(post请求,get请求)
2017/01/17 Javascript
一篇文章搞定JavaScript类型转换(面试常见)
2017/01/21 Javascript
微信小程序实战之登录页面制作(5)
2020/03/30 Javascript
微信小程序request请求后台接口php的实例详解
2017/09/20 Javascript
vue2.0页面前进刷新回退不刷新的实现方法
2018/07/31 Javascript
vuex2中使用mapGetters/mapActions报错的解决方法
2018/10/20 Javascript
extjs图表绘制之条形图实现方法分析
2020/03/06 Javascript
vue开发chrome插件,实现获取界面数据和保存到数据库功能
2020/12/01 Vue.js
举例讲解Python中的死锁、可重入锁和互斥锁
2015/11/05 Python
Python输出汉字字库及将文字转换为图片的方法
2016/06/04 Python
Python中字符串的处理技巧分享
2016/09/17 Python
使用Python通过win32 COM实现Word文档的写入与保存方法
2018/05/08 Python
Python OpenCV 调用摄像头并截图保存功能的实现代码
2019/07/02 Python
python自动发微信监控报警
2019/09/06 Python
python pyenv多版本管理工具的使用
2019/12/23 Python
在pytorch中动态调整优化器的学习率方式
2020/06/24 Python
python Matplotlib模块的使用
2020/09/16 Python
挂科检讨书范文
2014/02/20 职场文书
装饰公司活动策划方案
2014/08/23 职场文书
党员教师批评与自我批评发言稿
2014/10/15 职场文书
《中彩那天》教学反思
2016/02/24 职场文书
Mysql数据库手动及定时备份步骤
2021/11/07 MySQL