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 DataSet数据源处理代码
Mar 29 Javascript
jQuery判断iframe中元素是否存在的方法
May 11 Javascript
JavaScript插件化开发教程 (一)
Jan 27 Javascript
详解springmvc 接收json对象的两种方式
Dec 06 Javascript
jQueryUI 拖放排序遇到滚动条时有可能无法执行排序的小bug及解决方案
Dec 19 Javascript
VueJs 搭建Axios接口请求工具
Nov 20 Javascript
vue实现某元素吸顶或固定位置显示(监听滚动事件)
Dec 13 Javascript
JS实现的贪吃蛇游戏完整实例
Jan 18 Javascript
Vue使用zTree插件封装树组件操作示例
Apr 25 Javascript
Openlayers+EasyUI Tree动态实现图层控制
Sep 28 Javascript
原生JS实现音乐播放器
Jan 26 Javascript
JS canvas实现画板和签字板功能
Feb 23 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获取网页内容方法总结
2008/12/04 PHP
php ftp文件上传函数(基础版)
2010/06/03 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
laravel自定义分页的实现案例offset()和limit()
2019/10/15 PHP
PhpSpreadsheet设置单元格常用操作汇总
2020/11/13 PHP
用js实现上传图片前的预览(TX的面试题)
2007/08/14 Javascript
9个javascript语法高亮插件 推荐
2009/07/18 Javascript
javascript 必知必会之closure
2009/09/21 Javascript
JS 用6N±1法求素数 实例教程
2009/10/20 Javascript
js控制输入框获得和失去焦点时状态显示的方法
2015/01/30 Javascript
js实现截图保存图片功能的代码示例
2017/02/16 Javascript
Angular2 Service实现简单音乐播放器服务
2017/02/24 Javascript
Javascript中click与blur事件的顺序详析
2017/04/25 Javascript
Vue实现一个返回顶部backToTop组件
2017/07/25 Javascript
vue小白入门教程
2018/04/02 Javascript
使用Vue做一个简单的todo应用的三种方式的示例代码
2018/10/20 Javascript
详解如何在vscode里面调试js和node.js的方法步骤
2018/12/24 Javascript
JS求1到任意数之间的所有质数的方法详解
2019/05/20 Javascript
Flutter 超实用简单菜单弹出框 PopupMenuButton功能
2019/08/06 Javascript
详细介绍解决vue和jsp结合的方法
2020/02/06 Javascript
Python利用operator模块实现对象的多级排序详解
2017/05/09 Python
基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解
2017/10/13 Python
Python之ReportLab绘制条形码和二维码的实例
2018/01/15 Python
详谈Pandas中iloc和loc以及ix的区别
2018/06/08 Python
Python any()函数的使用方法
2019/10/28 Python
美国爆米花工厂:The Popcorn Factory
2019/09/14 全球购物
匡威西班牙官网:Converse西班牙
2019/10/01 全球购物
小学生安全保证书
2014/02/01 职场文书
小区消防演习方案
2014/02/21 职场文书
人力资源主管职责范本
2014/03/05 职场文书
我爱家乡演讲稿
2014/09/12 职场文书
党的群众路线教育实践活动对照检查材料思想汇报(党员篇)
2014/09/25 职场文书
毕业设计论文致谢词
2015/05/14 职场文书
新郎结婚感言
2015/07/31 职场文书
七年级话题作文之执着
2019/11/19 职场文书
golang三种设计模式之简单工厂、方法工厂和抽象工厂
2022/04/10 Golang