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 相关文章推荐
新页面打开实际尺寸的图片
Aug 25 Javascript
jquery 动态创建元素的方式介绍及应用
Apr 21 Javascript
使用JQUERY进行后台页面布局控制DIV实现左右式
Jan 07 Javascript
js面向对象之常见创建对象的几种方式(工厂模式、构造函数模式、原型模式)
Nov 09 Javascript
JavaScript Array对象详解
Mar 01 Javascript
jquery树形菜单效果的简单实例
Jun 06 Javascript
js实现网页定位导航功能
Mar 07 Javascript
jQuery.Sumoselect插件实现下拉复选框效果
Nov 09 jQuery
webpack css加载和图片加载的方法示例
Sep 11 Javascript
Node4-5静态资源服务器实战以及优化压缩文件实例内容
Aug 29 Javascript
原生JS运动实现轮播图
Jan 02 Javascript
vue中利用mqtt服务端实现即时通讯的步骤记录
Jul 01 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
Codeigniter的dom类用法实例
2015/06/26 PHP
动态加载js的几种方法
2006/10/23 Javascript
比Jquery的document.ready更快的方法
2010/04/28 Javascript
jQuery点击tr实现checkbox选中的方法
2013/03/19 Javascript
用JavaScript计算在UTF-8下存储字符串占用字节数
2013/08/08 Javascript
HTML页面登录时的JS验证方法
2014/05/28 Javascript
用canvas 实现个图片三角化(LOW POLY)效果
2016/02/18 Javascript
老司机带你解读jQuery插件开发流程
2016/05/16 Javascript
requirejs按需加载angularjs文件实例
2017/06/08 Javascript
p5.js入门教程和基本形状绘制
2018/03/15 Javascript
利用vscode调试编译后的js代码详解
2018/05/14 Javascript
关于vue编译版本引入的问题的解决
2018/09/17 Javascript
Javascript实现秒表倒计时功能
2018/11/17 Javascript
详解小程序rich-text对富文本支持方案
2018/11/28 Javascript
vue.js的状态管理vuex中store的使用详解
2019/11/08 Javascript
JavaScript实现轮播图片完整代码
2020/03/07 Javascript
nodejs处理tcp连接的核心流程
2021/02/26 NodeJs
Python类的用法实例浅析
2015/05/27 Python
python3.6 实现AES加密的示例(pyCryptodome)
2018/01/10 Python
10分钟教你用Python实现微信自动回复功能
2018/11/28 Python
将Pytorch模型从CPU转换成GPU的实现方法
2019/08/19 Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
2020/04/07 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
2020/11/20 Python
python excel多行合并的方法
2020/12/09 Python
HTML5 canvas基本绘图之绘制线段
2016/06/27 HTML / CSS
华为俄罗斯官方网上商城:购买Huawei手机和平板
2017/04/21 全球购物
大学军训感言1500字
2014/03/09 职场文书
学生请假条格式
2014/04/11 职场文书
幼儿园优秀班主任事迹材料
2014/05/14 职场文书
化学专业自荐信
2014/05/28 职场文书
舞蹈教育学专业自荐信
2014/06/15 职场文书
担保书范本
2015/01/20 职场文书
国庆节主题班会
2015/08/15 职场文书
Python控制台输出俄罗斯方块的方法实例
2021/04/17 Python
Redis如何实现分布式锁
2021/08/23 Redis
Python干货实战之八音符酱小游戏全过程详解
2021/10/24 Python