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 检测浏览器和操作系统的脚本
Dec 26 Javascript
JavaScript中实现sprintf、printf函数
Jan 27 Javascript
纯javascript移动优先的幻灯片效果
Nov 02 Javascript
js获取本机操作系统类型的两种方法
Dec 19 Javascript
jQuery+php实时获取及响应文本框输入内容的方法
May 24 Javascript
JavaScript操作表单实例讲解(上)
Jun 20 Javascript
jQuery Easyui 下拉树组件combotree
Dec 16 Javascript
详解JavaScript RegExp对象
Feb 04 Javascript
关于vue-router路径计算问题
May 10 Javascript
ES6解构赋值实例详解
Oct 31 Javascript
3种vue组件的书写形式
Nov 29 Javascript
element tree树形组件回显数据问题解决
Aug 14 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 5.0创建图形的巧妙方法
2010/10/12 PHP
PHP中如何使用Redis接管文件存储Session详解
2018/11/28 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
css图片自适应大小
2007/11/28 Javascript
js实现的map方法示例代码
2014/01/13 Javascript
jquery的live使用注意事项
2014/02/18 Javascript
开启Javascript中apply、call、bind的用法之旅模式
2015/10/28 Javascript
深入浅析Bootstrap列表组组件
2016/05/03 Javascript
javascript中闭包概念与用法深入理解
2016/12/15 Javascript
Vue组件之Tooltip的示例代码
2017/10/18 Javascript
javascript计算对象长度的方法
2017/10/25 Javascript
探讨Vue.js的组件和模板
2017/10/27 Javascript
关于vue的语法规则检测报错问题的解决
2018/05/21 Javascript
浅谈Angularjs中不同类型的双向数据绑定
2018/07/16 Javascript
vscode配置vue下的es6规范自动格式化详解
2019/03/20 Javascript
微信小程序如何实现精确的日期时间选择器
2020/01/21 Javascript
浅谈JavaScript中等号、双等号、 三等号的区别
2020/08/06 Javascript
vue实现可移动的悬浮按钮
2021/03/04 Vue.js
[01:45]DOTA2众星出演!DSPL刀塔次级职业联赛宣传片
2014/11/21 DOTA
使用Python对IP进行转换的一些操作技巧小结
2015/11/09 Python
Apache如何部署django项目
2017/05/21 Python
Python快速查找list中相同部分的方法
2018/06/27 Python
pygame游戏之旅 添加icon和bgm音效的方法
2018/11/21 Python
Python之修改图片像素值的方法
2019/07/03 Python
从pandas一个单元格的字符串中提取字符串方式
2019/12/17 Python
Python加密模块的hashlib,hmac模块使用解析
2020/01/02 Python
python 浮点数四舍五入需要注意的地方
2020/08/18 Python
html5-websocket基于远程方法调用的数据交互实现
2012/12/04 HTML / CSS
美国领先的户外服装与装备用品店:Moosejaw
2016/08/25 全球购物
美国按摩椅批发网站:Titan Chair
2018/12/27 全球购物
小学生暑假家长评语
2014/04/17 职场文书
森林病虫害防治方案
2014/06/02 职场文书
2014党员整改措施思想汇报
2014/10/07 职场文书
商务考察邀请函模板
2015/02/02 职场文书
酒店员工辞职信范文
2015/02/28 职场文书
浅谈 JavaScript 沙箱Sandbox
2021/11/02 Javascript