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 相关文章推荐
一个加载js文件的小脚本
Jun 28 Javascript
js调试工具 Javascript Debug Toolkit 2.0.0版本发布
Dec 02 Javascript
jquery 常用操作方法
Jan 28 Javascript
javascript实现方法调用与方法触发小结
Mar 26 Javascript
详解jQuery中ajax.load()方法
Jan 25 Javascript
Vue中正确使用jQuery的方法
Oct 30 jQuery
canvas轨迹回放功能实现
Dec 20 Javascript
微信小程序实现animation动画
Jan 26 Javascript
vue使用pdfjs显示PDF可复制的实现方法
Dec 14 Javascript
微信小程序实现抖音播放效果的实例代码
Apr 11 Javascript
绘制微信小程序验证码功能的实例代码
Jan 05 Javascript
Vue3.0写自定义指令的简单步骤记录
Jun 27 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
推荐25款php中非常有用的类库
2014/09/29 PHP
PHP实现二叉树的深度优先与广度优先遍历方法
2015/09/28 PHP
CodeIgniter扩展核心类实例详解
2016/01/20 PHP
使用phpQuery获取数组的实例
2017/03/13 PHP
Laravel框架使用Redis的方法详解
2018/05/30 PHP
PHP实现websocket通信的方法示例
2018/08/28 PHP
extjs 列表框(multiselect)的动态添加列表项的方法
2009/07/31 Javascript
jquery图片上下tab切换效果
2011/03/18 Javascript
Javascript 自适应高度的Tab选项卡
2011/04/05 Javascript
myEvent.js javascript跨浏览器事件框架
2011/10/24 Javascript
玩转方法:call和apply
2014/05/08 Javascript
extjs每个组件要设置唯一的ID否则会出错
2014/06/15 Javascript
使用jquery解析XML示例代码
2014/09/05 Javascript
不到30行JS代码实现Excel表格的方法
2014/11/15 Javascript
深入理解jQuery之防止冒泡事件
2016/05/24 Javascript
JavaScript、C# URL编码、解码总结
2017/01/21 Javascript
微信小程序 实现列表项滑动显示删除按钮的功能
2017/04/13 Javascript
javascript 数据存储的常用函数总结
2017/06/01 Javascript
解决ztree搜索中多级菜单展示不全问题
2017/07/05 Javascript
基于Bootstrap table组件实现多层表头的实例代码
2017/09/07 Javascript
jQuery实现获取选中复选框的值实例详解
2018/06/28 jQuery
150行代码带你实现微信小程序中的数据侦听
2019/05/17 Javascript
python提取页面内url列表的方法
2015/05/25 Python
Python 中的 else详解
2016/04/23 Python
python之验证码生成(gvcode与captcha)
2019/01/02 Python
Python 自动登录淘宝并保存登录信息的方法
2019/09/04 Python
Python预测2020高考分数和录取情况
2020/07/08 Python
python mongo 向数据中的数组类型新增数据操作
2020/12/05 Python
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
2021/01/27 Python
德国低价购买灯具和家具网站:Style-home.de
2016/11/25 全球购物
学习雷锋倡议书
2014/04/15 职场文书
革命英雄事迹演讲稿
2014/09/13 职场文书
2014年社区工作总结
2014/11/18 职场文书
区域经理岗位职责
2015/02/02 职场文书
西游记读书笔记
2015/06/25 职场文书
Golang获取List列表元素的四种方式
2022/04/20 Golang