原生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 学习技巧总结
May 21 Javascript
jquery attr方法获取input的checked属性问题
May 26 Javascript
基于js实现微信发送好友如何分享到朋友圈、微博
Nov 30 Javascript
原生js实现数字字母混合验证码的简单实例
Dec 10 Javascript
js document.getElementsByClassName的使用介绍与自定义函数
Nov 25 Javascript
JavaScript实现隐藏省略文字效果的方法
Apr 27 Javascript
js精确的加减乘除实例
Nov 14 Javascript
React Native react-navigation 导航使用详解
Dec 01 Javascript
JavaScript实现公告栏上下滚动效果
Mar 13 Javascript
JS实现网页时钟特效
Mar 25 Javascript
js判断鼠标移入移出方向的方法
Jun 24 Javascript
JS实现多功能计算器
Oct 28 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
合作指挥官:孟斯克
2020/03/16 星际争霸
PHP生成便于打印的网页
2006/10/09 PHP
PHP与SQL注入攻击[二]
2007/04/17 PHP
PHP 一个页面执行时间类代码
2010/03/05 PHP
php使用session二维数组实例
2014/11/06 PHP
PHP 的比较运算与逻辑运算详解
2016/05/12 PHP
PHP微信开发之查询城市天气
2016/06/23 PHP
PHP explode()函数用法讲解
2019/02/15 PHP
tp5.0框架隐藏index.php入口文件及模块和控制器的方法分析
2020/02/11 PHP
js实现的真正的iframe高度自适应(兼容IE,FF,Opera)
2010/03/07 Javascript
Javascript图像处理—为矩阵添加常用方法
2012/12/27 Javascript
单元选择合并变色示例代码
2014/05/26 Javascript
浅谈jQuery页面的滚动位置scrollTop、scrollLeft
2015/05/19 Javascript
Jquery zTree 树控件异步加载操作
2016/02/25 Javascript
移动适配的几种方案(三种方案)
2016/11/25 Javascript
Angular4表单验证代码详解
2017/09/03 Javascript
node.js 用socket实现聊天的示例代码
2017/10/17 Javascript
Vue用v-for给src属性赋值的方法
2018/03/03 Javascript
vue使用v-for实现hover点击效果
2018/09/29 Javascript
vue.js多页面开发环境搭建过程
2019/04/24 Javascript
vue项目在webpack2实现移动端字体自适配功能
2020/06/02 Javascript
微信小程序换肤功能实现代码(思路详解)
2020/08/25 Javascript
CentOS中使用virtualenv搭建python3环境
2015/06/08 Python
浅谈python中截取字符函数strip,lstrip,rstrip
2015/07/17 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
2019/06/13 Python
关于numpy中eye和identity的区别详解
2019/11/29 Python
计算机专业大学生的自我评价
2013/11/14 职场文书
高三语文教学反思
2014/01/15 职场文书
大学英语演讲稿范文
2014/04/24 职场文书
酒后驾车标语
2014/06/30 职场文书
入党积极分子学习优秀共产党员先进事迹思想汇报
2014/09/13 职场文书
酒会邀请函
2015/01/31 职场文书
写给同事的离职感言
2015/08/04 职场文书
老舍《猫》教学反思
2016/02/17 职场文书
CSS 制作波浪效果的思路
2021/05/18 HTML / CSS
什么是css原子化,有什么用?
2022/04/24 HTML / CSS