原生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 相关文章推荐
jquery 学习之二 属性(类)
Nov 25 Javascript
简介JavaScript中的setHours()方法的使用
Jun 11 Javascript
js+HTML5基于过滤器从摄像头中捕获视频的方法
Jun 16 Javascript
js限制文本框的输入内容代码分享(3类)
Aug 20 Javascript
Javascript vue.js表格分页,ajax异步加载数据
Oct 24 Javascript
JavaScript中错误正确处理方式小结你用对了吗
Oct 10 Javascript
react-native 圆弧拖动进度条实现的示例代码
Apr 12 Javascript
微信小程序表单弹窗实例
Jul 19 Javascript
springMvc 前端用json的方式向后台传递对象数组方法
Aug 07 Javascript
详解微信小程序-canvas绘制文字实现自动换行
Apr 26 Javascript
简单了解Ajax表单序列化的实现方法
Jun 14 Javascript
JavaScript中Dom操作实例详解
Jul 08 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
支付宝服务窗API接口开发php版本
2016/07/20 PHP
Yii2表单事件之Ajax提交实现方法
2017/05/04 PHP
Yii 2.0中场景的使用教程
2017/06/02 PHP
关于ThinkPHP中的异常处理详解
2018/05/11 PHP
javascript下arguments,caller,callee,call,apply示例及理解
2009/12/24 Javascript
JSQL 批量图片切换的实现代码
2010/05/05 Javascript
封装好的js判断操作系统与浏览器代码分享
2015/01/09 Javascript
Dojo获取下拉框的文本和值实例代码
2016/05/27 Javascript
js与jquery分别实现tab标签页功能的方法
2016/11/18 Javascript
javascript 利用arguments实现可变长参数
2016/11/21 Javascript
BootStrap select2 动态改变值的方法
2017/02/10 Javascript
微信小程序开发之实现自定义Toast弹框
2017/06/08 Javascript
JavaScript实现京东购物放大镜和选项卡效果的方法分析
2018/07/05 Javascript
npm配置国内镜像资源+淘宝镜像的方法
2018/09/07 Javascript
基于VUE实现的九宫格抽奖功能
2018/09/30 Javascript
JavaScript进阶(四)原型与原型链用法实例分析
2020/05/09 Javascript
Python中的多重装饰器
2015/04/11 Python
简单上手Python中装饰器的使用
2015/07/12 Python
python 全局变量的import机制介绍
2017/09/07 Python
Scrapy爬虫实例讲解_校花网
2017/10/23 Python
通过python改变图片特定区域的颜色详解
2019/07/15 Python
django+echart数据动态显示的例子
2019/08/12 Python
WxPython实现无边框界面
2019/11/18 Python
keras小技巧——获取某一个网络层的输出方式
2020/05/23 Python
10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例
2020/12/16 Python
html5视频播放_动力节点Java学院整理
2017/07/13 HTML / CSS
英国翻新电子产品购物网站:Tech Trade
2017/12/25 全球购物
美国围栏公司:Walpole Outdoors
2019/11/19 全球购物
C语言编程练习
2012/04/02 面试题
党的群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
校园广播站开场白
2015/06/01 职场文书
MySQL InnoDB ReplicaSet(副本集)简单介绍
2021/04/24 MySQL
python flask框架快速入门
2021/05/14 Python
Spring Boot 启动、停止、重启、状态脚本
2021/06/26 Java/Android
Java Spring 控制反转(IOC)容器详解
2021/10/05 Java/Android
Linux中文件的基本属性介绍
2022/06/01 Servers