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 更严格的相等 [译]
Sep 20 Javascript
jquery.qrcode在线生成二维码使用示例
Aug 21 Javascript
jQuery获取当前对象标签名称的方法
Feb 07 Javascript
node.js中的fs.createReadStream方法使用说明
Dec 17 Javascript
IE及IE6浏览器中判断JS文件加载成功失败的方法
Feb 18 Javascript
jQuery操作JSON的CRUD用法实例
Feb 25 Javascript
简单封装js的dom查询实例代码
Jul 08 Javascript
Vue SSR 组件加载问题
May 02 Javascript
jQuery实现简单的Ajax调用功能示例
Feb 15 jQuery
记录一次完整的react hooks实践
Mar 11 Javascript
JavaScript修改注册表实例代码
Jan 05 Javascript
js+canvas实现转盘效果(两个版本)
Sep 13 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 执行系统命令的方法
2009/07/07 PHP
php制作简单模版引擎
2016/04/07 PHP
phpmailer绑定邮箱的实现方法
2016/12/01 PHP
YII框架页面缓存操作示例
2019/04/29 PHP
JavaScript 获得选中文本内容的方法
2009/02/15 Javascript
javascript学习笔记(五)原型和原型链详解
2014/10/08 Javascript
对比分析json及XML
2014/11/28 Javascript
JS动态创建DOM元素的方法
2015/06/09 Javascript
javascript中alert()与console.log()的区别
2015/08/26 Javascript
谈谈JavaScript异步函数发展历程
2015/09/29 Javascript
针对JavaScript中this指向的简单理解
2016/08/26 Javascript
用Vue.js实现监听属性的变化
2016/11/17 Javascript
JavaScript 数据类型详解
2017/03/13 Javascript
Angular实现的进度条功能示例
2018/02/18 Javascript
JQuery实现ajax请求的示例和注意事项
2018/12/10 jQuery
详解小程序用户登录状态检查与更新实例
2019/05/15 Javascript
node.js处理前端提交的GET请求
2019/08/30 Javascript
搭建Vue从Vue-cli到router路由护卫的实现
2019/11/14 Javascript
vue页面更新patch的实现示例
2020/03/25 Javascript
jQuery实现简单QQ聊天框
2020/08/27 jQuery
React实现评论的添加和删除
2020/10/20 Javascript
[13:16]INFAMOUS vs VGJ T BO3
2018/06/07 DOTA
python实现各进制转换的总结大全
2017/06/18 Python
Pytorch实现GoogLeNet的方法
2019/08/18 Python
pytorch 实现tensor与numpy数组转换
2019/12/27 Python
jupyter notebook 的工作空间设置操作
2020/04/20 Python
python实现代码审查自动回复消息
2021/02/01 Python
Ted Baker英国官网:男士和女士服装及配件
2017/03/13 全球购物
Under Armour澳大利亚官网:美国知名的高端功能性运动品牌
2018/02/22 全球购物
《秋姑娘的信》教学反思
2014/02/28 职场文书
学生会部长竞聘书
2014/03/31 职场文书
学校领导干部民主生活会整改方案
2014/09/29 职场文书
爱国主义教育基地观后感
2015/06/18 职场文书
致运动员的广播稿
2015/08/19 职场文书
《语言的突破》读后感3篇
2019/12/12 职场文书
MySQL详细讲解变量variables的用法
2022/06/21 MySQL