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 相关文章推荐
JavaScript基本概念初级讲解论坛贴的学习记录
Feb 22 Javascript
ExtJs 3.1 XmlTreeLoader Example Error
Feb 09 Javascript
利用js(jquery)操作Cookie的方法说明
Dec 19 Javascript
JavaScript程序员应该知道的45个实用技巧
Mar 04 Javascript
微信小程序实战之自定义toast(6)
Apr 18 Javascript
微信小程序 刷新上拉下拉不会断详细介绍
May 11 Javascript
React学习笔记之列表渲染示例详解
Aug 22 Javascript
Node.js应用设置安全的沙箱环境
Apr 23 Javascript
WebPack配置vue多页面的技巧
May 15 Javascript
Vue前后端不同端口的实现方法
Sep 19 Javascript
微信小程序 Storage更新详解
Jul 16 Javascript
js实现随机点名
Jan 19 Javascript
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程序员基本要求和必备技能
2014/05/09 PHP
php检查函数必传参数是否存在的实例详解
2017/08/28 PHP
JTrackBar水平拖动效果
2007/07/15 Javascript
jQuery滚动加载图片效果的实现
2013/03/06 Javascript
jquery实现输入框动态增减的实例代码
2013/07/14 Javascript
CheckBoxList多选样式jquery、C#获取选择项
2013/09/06 Javascript
jQuery让控件左右移动的三种实现方法
2013/09/08 Javascript
js实现打地鼠小游戏
2017/02/13 Javascript
vue实现全选、反选功能
2020/11/17 Javascript
Angular.js前台传list数组由后台spring MVC接收数组示例代码
2017/07/31 Javascript
JS扩展String.prototype.format字符串拼接的功能
2018/03/09 Javascript
JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例
2018/07/27 Javascript
基于Angularjs-router动态改变Title值的问题
2018/08/30 Javascript
vue-router传递参数的几种方式实例详解
2018/11/13 Javascript
JQuery特殊效果和链式调用操作示例
2019/05/13 jQuery
小程序识别身份证,银行卡,营业执照,驾照的实现
2019/11/05 Javascript
Vue解析剪切板图片并实现发送功能
2020/02/04 Javascript
vue样式穿透 ::v-deep的具体使用
2020/06/04 Javascript
vue 解决mintui弹窗弹起来,底部页面滚动bug问题
2020/11/12 Javascript
linux安装python修改默认python版本方法
2019/03/31 Python
Python、 Pycharm、Django安装详细教程(图文)
2019/04/12 Python
python tkinter基本属性详解
2019/09/16 Python
Django+uni-app实现数据通信中的请求跨域的示例代码
2019/10/12 Python
parser.add_argument中的action使用
2020/04/20 Python
python 基于selectors库实现文件上传与下载
2020/12/31 Python
使用python对excel表格处理的一些小功能
2021/01/25 Python
潘多拉珠宝美国官方网站:Pandora US
2020/06/18 全球购物
经济管理专业自荐信
2013/12/30 职场文书
财务管理职业生涯规划书
2014/02/26 职场文书
学校清明节活动总结
2014/07/04 职场文书
好的旅游活动方案
2014/08/19 职场文书
国庆节活动总结
2014/08/26 职场文书
2014年监理个人工作总结
2014/12/11 职场文书
招商银行收入证明
2015/06/17 职场文书
旅游安全责任协议书
2016/03/22 职场文书
《攀登者》:“海拔8000米以上,你不能指望任何人”
2019/11/25 职场文书