javascript实现点击按钮弹出一个可关闭层窗口同时网页背景变灰的方法


Posted in Javascript onMay 13, 2015

本文实例讲述了javascript实现点击按钮弹出一个可关闭层窗口同时网页背景变灰的方法。分享给大家供大家参考。具体分析如下:

这里点击按钮后,弹出一个可关闭的层窗口,随之网页背景变灰,在QQ网站上经常会看到QQ登录的效果,就和这个很类似,代码段基于JavaScript,根据你的情况使用,有时候是用CSS完成的这种功能。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>弹出一个层,页面变灰</title>
<script language="javascript">
function alertWin(title, msg, w, h){ 
 var titleheight = "23px"; // 窗口标题高度 
 var bordercolor = "#336699"; // 提示窗口的边框颜色 
 var titlecolor = "#FFFFFF"; // 窗口标题颜色 
 var titlebgcolor = "#336699"; // 窗口标题背景色
 var bgcolor = "#FFFFFF"; // 提示内容的背景色
 var iWidth = document.documentElement.clientWidth; 
 var iHeight = document.documentElement.clientHeight; 
 var bgObj = document.createElement("div"); 
 bgObj.style.cssText = "position:absolute;left:0px;top:0px;width:"+iWidth+"px;height:"+Math.max(document.body.clientHeight, iHeight)+"px;filter:Alpha(Opacity=30);opacity:0.3;background-color:#000000;z-index:101;";
 document.body.appendChild(bgObj); 
 var msgObj=document.createElement("div");
 msgObj.style.cssText = "position:absolute;font:11px '宋体';top:"+(iHeight-h)/2+"px;left:"+(iWidth-w)/2+"px;width:"+w+"px;height:"+h+"px;text-align:center;border:1px solid "+bordercolor+";background-color:"+bgcolor+";padding:1px;line-height:22px;z-index:102;";
 document.body.appendChild(msgObj);
 var table = document.createElement("table");
 msgObj.appendChild(table);
 table.style.cssText = "margin:0px;border:0px;padding:0px;";
 table.cellSpacing = 0;
 var tr = table.insertRow(-1);
 var titleBar = tr.insertCell(-1);
 titleBar.style.cssText = "width:100%;height:"+titleheight+"px;text-align:left;padding:3px;margin:0px;font:bold 13px '宋体';color:"+titlecolor+";border:1px solid " + bordercolor + ";cursor:move;background-color:" + titlebgcolor;
 titleBar.style.paddingLeft = "10px";
 titleBar.innerHTML = title;
 var moveX = 0;
 var moveY = 0;
 var moveTop = 0;
 var moveLeft = 0;
 var moveable = false;
 var docMouseMoveEvent = document.onmousemove;
 var docMouseUpEvent = document.onmouseup;
 titleBar.onmousedown = function() {
  var evt = getEvent();
  moveable = true; 
  moveX = evt.clientX;
  moveY = evt.clientY;
  moveTop = parseInt(msgObj.style.top);
  moveLeft = parseInt(msgObj.style.left);  
  document.onmousemove = function() {
   if (moveable) {
    var evt = getEvent();
    var x = moveLeft + evt.clientX - moveX;
    var y = moveTop + evt.clientY - moveY;
    if ( x > 0 &&( x + w < iWidth) && y > 0 && (y + h < iHeight) ) {
     msgObj.style.left = x + "px";
     msgObj.style.top = y + "px";
    }
   } 
  };
  document.onmouseup = function () { 
   if (moveable) { 
    document.onmousemove = docMouseMoveEvent;
    document.onmouseup = docMouseUpEvent;
    moveable = false; 
    moveX = 0;
    moveY = 0;
    moveTop = 0;
    moveLeft = 0;
   } 
  };
 }
 var closeBtn = tr.insertCell(-1);
 closeBtn.style.cssText = "cursor:pointer; padding:2px;background-color:" + titlebgcolor;
 closeBtn.innerHTML = "<span style='font-size:15pt; color:"+titlecolor+";'>×</span>";
 closeBtn.onclick = function(){ 
  document.body.removeChild(bgObj); 
  document.body.removeChild(msgObj); 
 } 
 var msgBox = table.insertRow(-1).insertCell(-1);
 msgBox.style.cssText = "font:10pt '宋体';";
 msgBox.colSpan = 2;
 msgBox.innerHTML = msg;
  // 获得Event对象,用于兼容IE和FireFox
  function getEvent() {
   return window.event || arguments.callee.caller.arguments[0];
  }
} 
</script>
</head>
<body>
<input type="button" value="点这里" 
onclick="alertWin('点击弹出可关闭的层窗口,网页变灰',290,208);" />
</body>
</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
Jquery css函数用法(判断标签是否拥有某属性)
May 28 Javascript
css+js实现部分区域高亮可编辑遮罩层
Mar 04 Javascript
js获取 type=radio 值的方法
May 09 Javascript
基于JavaScript创建动态Dom
Dec 08 Javascript
javascript小数精度丢失的完美解决方法
May 31 Javascript
浅谈js函数的多种定义方法与区别
Nov 29 Javascript
jQuery实现可编辑表格并生成json结果(实例代码)
Jul 19 jQuery
vue父子组件的嵌套的示例代码
Sep 08 Javascript
JavaScript实现的原生态Tab标签页功能【兼容IE6】
Sep 18 Javascript
Vue+axios实现统一接口管理的方法
Jul 23 Javascript
vue form 表单提交后刷新页面的方法
Sep 04 Javascript
微信小程序实现简单评论功能
Nov 28 Javascript
JS实现简洁、全兼容的拖动层实例
May 13 #Javascript
javascript实现图片跟随鼠标移动效果的方法
May 13 #Javascript
javascript鼠标滑动评分控件完整实例
May 13 #Javascript
javascript实现链接单选效果的方法
May 13 #Javascript
javascript实现table选中的行以指定颜色高亮显示的方法
May 13 #Javascript
javascript实现table表格隔行变色的方法
May 13 #Javascript
javascript模拟评分控件实现方法
May 13 #Javascript
You might like
php自定文件保存session的方法
2014/12/10 PHP
PHP重载基础知识回顾
2020/09/10 PHP
window.onresize 多次触发的解决方法
2013/11/08 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
2013/12/13 Javascript
教你如何使用node.js制作代理服务器
2014/11/26 Javascript
js去除浏览器默认底图的方法
2015/06/08 Javascript
两种JS实现屏蔽鼠标右键的方法
2020/08/20 Javascript
使用Bootstrap框架制作查询页面的界面实例代码
2016/05/27 Javascript
js 获取当前web应用的上下文路径实现方法
2016/08/19 Javascript
JS封装的选项卡TAB切换效果示例
2016/09/20 Javascript
javascript简单进制转换实现方法
2016/11/24 Javascript
Node.js 使用命令行工具检查更新
2017/06/08 Javascript
微信小程序调用PHP后台接口 解析纯html文本
2017/06/13 Javascript
React Native之prop-types进行属性确认详解
2017/12/19 Javascript
微信小程序onLaunch异步,首页onLoad先执行?
2018/09/20 Javascript
谈谈为什么你的 JavaScript 代码如此冗长
2019/01/30 Javascript
Async/Await替代Promise的6个理由
2019/06/15 Javascript
js数据类型转换与流程控制操作实例分析
2019/12/18 Javascript
python3实现公众号每日定时发送日报和图片
2018/02/24 Python
python3+PyQt5自定义视图详解
2018/04/24 Python
Python Pillow Image Invert
2019/01/22 Python
基于Python实现大文件分割和命名脚本过程解析
2019/09/29 Python
Python3实现发送邮件和发送短信验证码功能
2020/01/07 Python
Python 批量读取文件中指定字符的实现
2020/03/06 Python
python框架Django实战商城项目之工程搭建过程图文详解
2020/03/09 Python
Python Pandas 对列/行进行选择,增加,删除操作
2020/05/17 Python
Django基于Models定制Admin后台实现过程解析
2020/11/11 Python
德国知名健康零食网上商店:Seeberger
2017/07/27 全球购物
葡萄牙语专业个人求职信
2013/12/10 职场文书
失业者真诚求职信范文
2013/12/25 职场文书
2014大学生学生会工作总结
2014/12/19 职场文书
2016年清明节寄语
2015/12/04 职场文书
vue首次渲染全过程
2021/04/21 Vue.js
python3实现无权最短路径的方法
2021/05/12 Python
Spring事务管理下synchronized锁失效问题的解决方法
2022/03/31 Java/Android
进阶篇之linux环境下安装MySQL数据库
2022/04/09 MySQL