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 相关文章推荐
JS 类型转换常见方法小结
May 31 Javascript
JavaScript函数定义的常见注意事项小结
Sep 16 Javascript
javascript 中__proto__和prototype详解
Nov 25 Javascript
简单讲解AngularJS的Routing路由的定义与使用
Mar 05 Javascript
jQuery中$.grep() 过滤函数 数组过滤
Nov 22 Javascript
js匿名函数使用&amp;传参(实例)
Sep 08 Javascript
剖析Angular Component的源码示例
Mar 23 Javascript
vue用Object.defineProperty手写一个简单的双向绑定的示例
Jul 09 Javascript
vue js秒转天数小时分钟秒的实例代码
Aug 08 Javascript
layui关闭弹窗后刷新主页面和当前更改项的例子
Sep 06 Javascript
vue.js this.$router.push获取不到params参数问题
Mar 03 Javascript
vue3种table表格选项个数的控制方法
Apr 14 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
php中实现简单的ACL 完结篇
2011/09/07 PHP
php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
2012/09/07 PHP
PHP--用万网的接口实现域名查询功能
2012/12/13 PHP
javascript函数库-集合框架
2007/04/27 Javascript
js 解决“options为空或不是对象”
2008/12/22 Javascript
Javascript 面向对象 对象(Object)
2010/05/13 Javascript
Jquery升级新版本后选择器的语法问题
2010/06/02 Javascript
精心挑选的15款优秀jQuery 本特效插件和教程
2012/08/06 Javascript
javascript实现详细时间提醒信息效果的方法
2015/03/11 Javascript
JS表格组件神器bootstrap table详解(基础版)
2015/12/08 Javascript
详解Javascript ES6中的箭头函数(Arrow Functions)
2016/08/24 Javascript
浅析vue数据绑定
2017/01/17 Javascript
基于BootStrap实现简洁注册界面
2017/07/20 Javascript
Vue自定义指令详解
2017/07/28 Javascript
jQuery实现简单日期格式化功能示例
2017/09/19 jQuery
jQuery替换节点元素的操作方法
2018/03/18 jQuery
详解javascript appendChild()的完整功能
2018/08/18 Javascript
jQuery中DOM常见操作实例小结
2019/08/01 jQuery
微信小程序实现上拉加载功能
2019/11/20 Javascript
jQuery实现简单弹幕制作
2020/12/10 jQuery
Python3实现从指定路径查找文件的方法
2015/05/22 Python
Python实现新浪博客备份的方法
2016/04/27 Python
python得到windows自启动列表的方法
2018/10/14 Python
python openCV获取人脸部分并存储功能
2019/08/28 Python
Python Socketserver实现FTP文件上传下载代码实例
2020/03/27 Python
Python HTMLTestRunner测试报告view按钮失效解决方案
2020/05/25 Python
通过代码实例解析Pytest运行流程
2020/08/20 Python
Python爬虫之Selenium警告框(弹窗)处理
2020/12/04 Python
HTML5 Canvas中使用路径描画二阶、三阶贝塞尔曲线
2015/01/01 HTML / CSS
学生自我鉴定模板
2013/12/30 职场文书
一分钟演讲稿
2014/04/30 职场文书
党的群众路线教育实践活动领导班子整改措施
2014/09/30 职场文书
家长意见和建议怎么写
2015/06/04 职场文书
师范生教育见习总结
2015/06/23 职场文书
拿破仑传读书笔记
2015/07/01 职场文书
Redis集群的关闭与重启操作
2021/07/07 Redis