原生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实现Sleep暂停功能代码
Sep 03 Javascript
JS 去前后空格大全(IE9亲测)
Jul 15 Javascript
JS、CSS加载中的小问题探讨
Nov 26 Javascript
PHP+jQuery实现随意拖动层并即时保存拖动位置
Apr 30 Javascript
BootStrap初学者对弹出框和进度条的使用感觉
Jun 27 Javascript
jQuery解析与处理服务器端返回xml格式数据的方法详解
Jul 04 Javascript
概述VUE2.0不可忽视的很多变化
Sep 25 Javascript
Dropzone.js实现文件拖拽上传功能(附源码下载)
Nov 22 Javascript
javascript事件的绑定基础实例讲解(34)
Feb 14 Javascript
浅谈express 中间件机制及实现原理
Aug 31 Javascript
微信小程序如何刷新当前界面的实现方法
Jun 07 Javascript
js判断非127开头的IP地址的实例代码
Jan 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 nl2br()格式化输出的详解
2013/06/05 PHP
PHP获取php,mysql,apche的版本信息示例代码
2014/01/16 PHP
Windows下Apache + PHP SESSION丢失的解决过程全纪录
2015/04/07 PHP
yii2.0整合阿里云oss删除单个文件的方法
2017/09/19 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
TP5框架实现上传多张图片的方法分析
2020/03/29 PHP
Prototype使用指南之form.js
2007/01/10 Javascript
iframe父页面获取子页面参数的方法
2014/02/21 Javascript
js 去除字符串第一位逗号的方法
2014/06/07 Javascript
JQuery 在线引用及测试引用是否成功
2014/06/24 Javascript
jQuery后代选择器用法实例
2014/12/23 Javascript
有关jquery与DOM节点操作方法和属性记录
2016/04/15 Javascript
JS基础随笔(菜鸟必看篇)
2016/07/13 Javascript
js时间戳和c#时间戳互转方法(推荐)
2017/02/15 Javascript
JavaScript实现替换字符串中最后一个字符的方法
2017/03/07 Javascript
在Python的struct模块中进行数据格式转换的方法
2015/06/17 Python
Ubuntu下创建虚拟独立的Python环境全过程
2017/02/10 Python
Python基于pandas实现json格式转换成dataframe的方法
2018/06/22 Python
Python爬虫框架scrapy实现的文件下载功能示例
2018/08/04 Python
python文件选择对话框的操作方法
2019/06/27 Python
windows10 pycharm下安装pyltp库和加载模型实现语义角色标注的示例代码
2020/05/07 Python
Python如何测试stdout输出
2020/08/10 Python
使用HTML5里的classList操作CSS类
2016/06/28 HTML / CSS
世界上最大的二手相机店:KEN
2017/05/17 全球购物
卡骆驰英国官网:Crocs英国
2019/08/22 全球购物
七年级英语教学反思
2014/01/15 职场文书
护士辞职信范文
2014/01/19 职场文书
教师校本培训方案
2014/02/26 职场文书
工作作风建设心得体会
2014/10/22 职场文书
个人党性锻炼总结
2015/03/05 职场文书
2015新学期校长寄语(3篇)
2015/03/25 职场文书
总结会主持词
2015/07/02 职场文书
2016年元旦主持词
2015/07/06 职场文书
回门宴新娘答谢词
2015/09/29 职场文书
班委竞选稿范文
2015/11/21 职场文书
职业规划从高考志愿专业选择开始
2019/08/08 职场文书