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 相关文章推荐
图片格式的JavaScript和CSS速查手册
Aug 20 Javascript
javascript淡入淡出效果的实现思路
Mar 31 Javascript
js 弹出新页面避免被浏览器、ad拦截的一种新方法
Apr 30 Javascript
javascript实现鼠标移到Image上方时显示文字效果的方法
Aug 07 Javascript
JavaScript实现页面定时刷新(定时器,meta)
Oct 12 Javascript
jQuery EasyUI的TreeGrid查询功能实现方法
Aug 08 jQuery
详解JS中的this、apply、call、bind(经典面试题)
Sep 19 Javascript
js实现随机8位验证码
Jul 24 Javascript
Node.js 路由的实现方法
Jun 05 Javascript
JS错误处理与调试操作实例分析
Apr 13 Javascript
使用原生JS实现滚轮翻页效果的示例代码
May 31 Javascript
idea编译器vue缩进报错问题场景分析
Jul 04 Vue.js
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
在win系统安装配置 Memcached for PHP 5.3 图文教程
2015/03/03 PHP
php操作MongoDB类实例
2015/06/17 PHP
PHP不使用内置函数实现字符串转整型的方法示例
2017/07/03 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
JS使用for循环遍历Table的所有单元格内容
2014/08/21 Javascript
js实现界面向原生界面发消息并跳转功能
2016/11/22 Javascript
jquery事件与绑定事件
2017/03/16 Javascript
详解JavaScript按概率随机生成事件
2017/08/02 Javascript
js实现移动端轮播图效果
2020/12/09 Javascript
理解javascript async的用法
2017/08/22 Javascript
学习JS中的DOM节点以及操作
2018/04/30 Javascript
JS简单数组排序操作示例【sort方法】
2019/05/17 Javascript
浅谈vuex为什么不建议在action中修改state
2020/02/02 Javascript
如何优雅地取消 JavaScript 异步任务
2020/03/22 Javascript
python实现dnspod自动更新dns解析的方法
2014/02/14 Python
在Python中使用swapCase()方法转换大小写的教程
2015/05/20 Python
解决Django migrate No changes detected 不能创建表的问题
2018/05/27 Python
Python list列表中删除多个重复元素操作示例
2019/02/27 Python
Python基础学习之类与实例基本用法与注意事项详解
2019/06/17 Python
把django中admin后台界面的英文修改为中文显示的方法
2019/07/26 Python
pytorch在fintune时将sequential中的层输出方法,以vgg为例
2019/08/20 Python
用python3读取python2的pickle数据方式
2019/12/25 Python
Python编程快速上手——PDF文件操作案例分析
2020/02/28 Python
详解css3使用transform出现字体模糊的解决办法
2020/10/16 HTML / CSS
香港最新科技与优质家居产品购物网站:J SELECT
2018/08/21 全球购物
英国行业制服供应商:Alexandra
2019/09/14 全球购物
linux面试题参考答案(8)
2016/04/19 面试题
党章学习思想汇报
2014/01/14 职场文书
行政人事岗位职责
2014/03/17 职场文书
海飞丝的广告词
2014/03/20 职场文书
2014年社会实践活动总结范文
2014/04/29 职场文书
优秀工作者事迹材料
2014/12/26 职场文书
导游词格式
2015/02/13 职场文书
单独二胎证明
2015/06/24 职场文书
街道办残联2016年助残日活动总结
2016/04/01 职场文书
JS中如何优雅的使用async await详解
2021/10/05 Javascript