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 BASE64编码 window.atob(), window.btoa()
Mar 09 Javascript
javascript基于DOM实现权限选择实例分析
May 14 Javascript
jquery验证邮箱格式是否正确实例讲解
Nov 16 Javascript
Jquery实现select multiple左右添加和删除功能的简单实例
May 26 Javascript
Angularjs CURD 详解及实例代码
Sep 14 Javascript
jquery购物车结算功能实现方法
Oct 29 Javascript
js 监控iframe URL的变化实例代码
Jul 12 Javascript
Node.js如何实现注册邮箱激活功能 (常见)
Jul 23 Javascript
vue动态路由实现多级嵌套面包屑的思路与方法
Aug 16 Javascript
基于canvas粒子系统的构建详解
Aug 31 Javascript
vue 每次渲染完页面后div的滚动条保持在最底部的方法
Mar 17 Javascript
解决angularjs前后端分离调用接口传递中文时中文乱码的问题
Aug 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』PHP截断函数mb_substr()使用介绍
2013/04/22 PHP
php stream_get_meta_data返回值
2013/09/29 PHP
学习php设计模式 php实现享元模式(flyweight)
2015/12/07 PHP
ThinkPHP框架里隐藏index.php
2016/04/12 PHP
PHP简单实现无限级分类的方法
2016/05/13 PHP
详解php命令注入攻击
2019/04/06 PHP
如何在PHP中使用AES加密算法加密数据
2020/06/24 PHP
jquery slibings选取同级其他元素的实现代码
2013/11/15 Javascript
node.js中的http.response.removeHeader方法使用说明
2014/12/14 Javascript
jquery中添加属性和删除属性
2015/06/03 Javascript
在JavaScript中用getMinutes()方法返回指定的分时刻
2015/06/10 Javascript
JS中的数组转变成JSON格式字符串的方法
2017/05/09 Javascript
js中getter和setter用法实例分析
2018/08/14 Javascript
Node.js 使用request模块下载文件的实例
2018/09/05 Javascript
vue中的inject学习教程
2019/04/24 Javascript
通过Nodejs搭建网站简单实现注册登录流程
2019/06/14 NodeJs
微信小程序的授权实现过程解析
2019/08/02 Javascript
Vue生命周期activated之返回上一页不重新请求数据操作
2020/07/26 Javascript
Flask入门教程实例:搭建一个静态博客
2015/03/27 Python
python制作爬虫爬取京东商品评论教程
2016/12/16 Python
Django如何实现内容缓存示例详解
2017/09/24 Python
python pandas库的安装和创建
2019/01/10 Python
PyQt5笔记之弹出窗口大全
2019/06/20 Python
pytorch实现对输入超过三通道的数据进行训练
2020/01/15 Python
opencv+python实现均值滤波
2020/02/19 Python
基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码
2021/02/18 Python
css3 media 响应式布局的简单实例
2016/08/03 HTML / CSS
最好的意大利皮夹克:D’Arienzo
2018/12/04 全球购物
国贸类专业毕业生的求职信分享
2013/12/08 职场文书
户外亲子活动策划方案
2014/02/07 职场文书
乳制品整治工作方案
2014/05/29 职场文书
食品质检员岗位职责
2015/04/08 职场文书
2015夏季作息时间调整通知
2015/04/24 职场文书
律师函格式范本
2015/05/27 职场文书
速龙x4-860k处理器相当于i几
2022/04/20 数码科技
Java线程的6种状态与生命周期
2022/05/11 Java/Android