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 嵌套的函数(作用域链)
Mar 15 Javascript
jquery常用技巧及常用方法列表集合
Apr 06 Javascript
工作需要写的一个js拖拽组件
Jul 28 Javascript
PHP+MySQL+jQuery随意拖动层并即时保存拖动位置实例讲解
Oct 09 Javascript
纯JavaScript代码实现移动设备绘图解锁
Oct 16 Javascript
jQuery无刷新切换主题皮肤实例讲解
Oct 21 Javascript
jQuery随手笔记之常用的jQuery操作DOM事件
Nov 29 Javascript
AngularJS在IE8的不支持的解决方法
May 13 Javascript
JS实现title标题栏文字不间断滚动显示效果
Sep 07 Javascript
js a标签点击事件
Mar 30 Javascript
vue-awesome-swiper 基于vue实现h5滑动翻页效果【推荐】
Nov 08 Javascript
js屏蔽退格键(backspace或者叫后退键与F5)
Feb 10 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统计目录下的文件总数及代码行数(去除注释及空行)
2011/01/17 PHP
php中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
2011/07/03 PHP
PHP PDOStatement::getAttribute讲解
2019/02/01 PHP
event.keyCode键码值表 附只能输入特定的字符串代码
2009/05/15 Javascript
关于jquery性能最佳实践的讨论,与求教
2012/03/30 Javascript
jQuery判断浏览器并动态调整select宽度的方法
2016/03/02 Javascript
使用Script元素发送JSONP请求的方法
2016/06/12 Javascript
js实现二级导航功能
2017/03/03 Javascript
Node.js 中exports 和 module.exports 的区别
2017/03/14 Javascript
vue异步axios获取的数据渲染到页面的方法
2018/08/09 Javascript
vuejs实现ready函数加载完之后执行某个函数的方法
2018/08/31 Javascript
postman自定义函数实现 时间函数的思路详解
2019/04/17 Javascript
vue之延时刷新实例
2019/11/14 Javascript
如何基于javascript实现贪吃蛇游戏
2020/02/09 Javascript
深入浅析golang zap 日志库使用(含文件切割、分级别存储和全局使用等)
2020/02/19 Javascript
微信小程序实现简单文字跑马灯
2020/05/26 Javascript
Vue实现导航栏菜单
2020/08/19 Javascript
python django集成cas验证系统
2014/07/14 Python
Python简单实现socket信息发送与监听功能示例
2018/01/03 Python
对pycharm 修改程序运行所需内存详解
2018/12/03 Python
Flask框架学习笔记之使用Flask实现表单开发详解
2019/08/12 Python
Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例
2019/09/29 Python
keras CNN卷积核可视化,热度图教程
2020/06/22 Python
如何利用python之wxpy模块玩转微信
2020/08/17 Python
Python趣味入门教程之循环语句while
2020/08/26 Python
HTML5之web workers_动力节点Java学院整理
2017/07/17 HTML / CSS
html5 Canvas画图教程(6)—canvas里画曲线之arcTo方法
2013/01/09 HTML / CSS
中国高端鲜花第一品牌:roseonly(一生只送一人)
2017/02/12 全球购物
电厂厂长岗位职责
2014/01/02 职场文书
甜美蛋糕店创业计划书
2014/01/30 职场文书
网管求职信
2014/03/03 职场文书
行政人事专员岗位职责
2014/03/05 职场文书
2014年保险业务员工作总结
2014/12/23 职场文书
2015年车间安全管理工作总结
2015/05/13 职场文书
高三数学教学反思
2016/02/18 职场文书
mysql中between的边界,范围说明
2021/06/08 MySQL