javascript实现一个简单的弹出窗


Posted in Javascript onFebruary 22, 2016

功能介绍:点击一个按钮,然后页面会弹出一个窗口,而页面原来的内容会保持不变,只是在其页面上加了一个遮罩层,设置了不透明度,弹出的窗口可设置在固定位置,也可以自由设定,常见于网站的登录按钮。

html页面:

<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>js实现一个弹出框</title>
<style type="text/css">
/*预先写好弹出窗的样式*/
#menu{height: 900px;}
#close{ 
  width:30px; 
  height:30px; 
  cursor:pointer; 
  position:absolute; 
  right:5px; 
  top:5px; 
  text-indent:-999em;
  background-color:blue;
  }
#mask{ 
  background-color:pink;
  opacity:0.5;
  filter: alpha(opacity=50); 
  position:absolute; 
  left:0;
  top:0;
  z-index:1;
  }
#login{ 
  position:fixed;
  z-index:2;
  }
.loginCon{ 
  position:relative; 
  width:670px;
  height:380px;
  /*background:url(img/loginBg.png) #2A2C2E center center no-repeat;*/
  background-color: #ccc;
  }
</style>

</head>
<body>
<div id="menu">
  <div id="login-area">
   <button id="btnLogin">登录</button>
  </div>
</div>
</body>
</html>

js代码:

<script>
function openNew(){
  //获取页面的高度和宽度
  var sWidth=document.body.scrollWidth;
  var sHeight=document.body.scrollHeight;
  
  //获取页面的可视区域高度和宽度
  var wHeight=document.documentElement.clientHeight;
  
  var oMask=document.createElement("div");
    oMask.id="mask";
    oMask.style.height=sHeight+"px";
    oMask.style.width=sWidth+"px";
    document.body.appendChild(oMask);
  var oLogin=document.createElement("div");
    oLogin.id="login";
    oLogin.innerHTML="<div class='loginCon'><div id='close'>关闭</div></div>";
    document.body.appendChild(oLogin);
  
  //获取登陆框的宽和高
  var dHeight=oLogin.offsetHeight;
  var dWidth=oLogin.offsetWidth;
    //设置登陆框的left和top
    oLogin.style.left=sWidth/2-dWidth/2+"px";
    oLogin.style.top=wHeight/2-dHeight/2+"px";
  //点击关闭按钮
  var oClose=document.getElementById("close");
  
    //点击登陆框以外的区域也可以关闭登陆框
    oClose.onclick=oMask.onclick=function(){
          document.body.removeChild(oLogin);
          document.body.removeChild(oMask);
          };
          };
          
  window.onload=function(){
      var oBtn=document.getElementById("btnLogin");
        //点击登录按钮
        oBtn.onclick=function(){
          openNew();
          return false;
          }
        
    }
</script>
Javascript 相关文章推荐
jquery ajax 调用失败的原因示例介绍
Sep 27 Javascript
JavaScript function 的 length 属性使用介绍
Sep 15 Javascript
node.js中的require使用详解
Dec 15 Javascript
基于Jquery代码实现支持PC端手机端幻灯片代码
Nov 17 Javascript
微信公众号支付H5调用支付解析
Nov 04 Javascript
纯JS实现表单验证实例
Dec 24 Javascript
node.js基于express使用websocket的方法
Nov 09 Javascript
基于JavaScript或jQuery实现网站夜间/高亮模式
May 30 jQuery
js将日期格式转换为YYYY-MM-DD HH:MM:SS
Sep 18 Javascript
nuxt 服务器渲染动态设置 title和seo关键字的操作
Nov 05 Javascript
ESLint 是如何检查 .vue 文件的
Nov 30 Vue.js
vue+element_ui上传文件,并传递额外参数操作
Dec 05 Vue.js
Js的Array数组对象详解
Feb 22 #Javascript
AngularJS中使用HTML5手机摄像头拍照
Feb 22 #Javascript
JS字符串的切分用法实例
Feb 22 #Javascript
JS实现上下左右对称的九九乘法表
Feb 22 #Javascript
基于Javascript实现倒计时功能
Feb 22 #Javascript
TypeOf这些知识点你了解吗
Feb 21 #Javascript
详谈javascript异步编程
Feb 21 #Javascript
You might like
PHP中的use关键字及文件的加载详解
2016/11/28 PHP
PHP四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】
2018/04/27 PHP
PHP之header函数详解
2021/03/02 PHP
用JavaScript实现类似于ListBox功能示例代码
2014/03/09 Javascript
jQuery实现购物车多物品数量的加减+总价计算
2014/06/06 Javascript
JQuery中$.each 和$(selector).each()的区别详解
2015/03/13 Javascript
jquery仿百度百科底部浮动导航特效
2015/08/08 Javascript
后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
2016/07/05 Javascript
最棒的Angular2表格控件
2016/08/10 Javascript
基于jQuery实现左侧菜单栏可折叠功能
2016/12/27 Javascript
JS实现的将html转为pdf功能【基于浏览器端插件jsPDF】
2018/02/06 Javascript
微信小程序封装自定义弹窗的实现代码
2019/05/08 Javascript
[46:49]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.19
2020/12/24 DOTA
Python 3.x 连接数据库示例(pymysql 方式)
2017/01/19 Python
详解django中自定义标签和过滤器
2017/07/03 Python
深入分析python中整型不会溢出问题
2018/06/18 Python
python使用scrapy发送post请求的坑
2018/09/04 Python
python分别打包出32位和64位应用程序
2020/02/18 Python
如何实现更换Jupyter Notebook内核Python版本
2020/05/18 Python
解决tensorflow/keras时出现数组维度不匹配问题
2020/06/29 Python
Python如何解除一个装饰器
2020/08/07 Python
如何利用CSS3制作3D效果文字具体实现样式
2013/05/02 HTML / CSS
英国领先的电子、技术和办公用品购物网站:Ebuyer
2018/04/04 全球购物
社区工作者思想汇报
2014/01/13 职场文书
学生干部的自我评价分享
2014/01/18 职场文书
新年晚会主持词
2014/03/24 职场文书
关于中国梦的演讲稿
2014/04/23 职场文书
求职信内容怎么写
2014/05/26 职场文书
解除劳动合同协议书范本
2014/09/13 职场文书
英语通知范文
2015/04/22 职场文书
2015年小学远程教育工作总结
2015/07/28 职场文书
MySQL InnoDB ReplicaSet(副本集)简单介绍
2021/04/24 MySQL
写好Python代码的几条重要技巧
2021/05/21 Python
关于python pygame游戏进行声音添加的技巧
2021/10/24 Python
MySQL8.0 Undo Tablespace管理详解
2022/06/16 MySQL
Go 内联优化让程序员爱不释手
2022/06/21 Golang