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解决弹窗问题实现班级跳转DIV示例
Jan 06 Javascript
javascript调试之DOM断点调试法使用技巧分享
Apr 15 Javascript
一个简单的jquery的多选下拉框(自写)
May 05 Javascript
通过实例理解javascript中没有函数重载的概念
Jun 03 Javascript
完美解决jQuery符号$与其他javascript 库、框架冲突的问题
Aug 09 Javascript
概述VUE2.0不可忽视的很多变化
Sep 25 Javascript
前端实现文件的断点续传(前端文件提交+后端PHP文件接收)
Nov 04 Javascript
详解JS几种变量交换方式以及性能分析对比
Nov 25 Javascript
node+express+ejs使用模版引擎做的一个示例demo
Sep 18 Javascript
javascript事件循环event loop的简单模型解释与应用分析
Mar 14 Javascript
简单了解JavaScript arguement原理及作用
May 28 Javascript
JavaScript位置参数实现原理及过程解析
Sep 14 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
某大型网络公司应聘时的笔试题目附答案
2008/03/27 PHP
一致性哈希算法以及其PHP实现详细解析
2013/08/24 PHP
PHP中Restful api 错误提示返回值实现思路
2016/04/12 PHP
php根据地址获取百度地图经纬度的实例方法
2019/09/03 PHP
jQuery Ajax之load()方法
2009/10/12 Javascript
自写简单JS判断是否已经弹出页面
2010/10/20 Javascript
淘宝搜索框效果实现分析
2011/03/05 Javascript
javascript学习笔记(六) Date 日期类型
2012/06/19 Javascript
jQuery点击后一组图片左右滑动的实现代码
2012/08/16 Javascript
使用jQuery UI库开发Web界面的简单入门指引
2016/04/22 Javascript
jQuery中常用动画效果函数(日常整理)
2016/09/17 Javascript
angularJS+requireJS实现controller及directive的按需加载示例
2017/02/20 Javascript
canvas实现爱心和彩虹雨效果
2017/03/09 Javascript
AngularJS日程表案例详解
2017/08/15 Javascript
Angular2实现组件交互的方法分析
2017/12/19 Javascript
npm scripts 使用指南详解
2018/10/08 Javascript
Vue数据驱动表单渲染,轻松搞定form表单
2019/07/19 Javascript
vue+element UI实现树形表格
2020/12/29 Vue.js
Python复制目录结构脚本代码分享
2015/03/06 Python
Python实现PS滤镜功能之波浪特效示例
2018/01/26 Python
Python SMTP发送邮件遇到的一些问题及解决办法
2018/10/24 Python
numpy和pandas中数组的合并、拉直和重塑实例
2019/06/28 Python
Python使用monkey.patch_all()解决协程阻塞问题
2020/04/15 Python
python 线程的五个状态
2020/09/22 Python
实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码
2014/11/05 HTML / CSS
英国最大的电脑零售连锁店集团:PC World
2016/10/10 全球购物
硕士研究生自我鉴定范文
2013/12/27 职场文书
财务工作者先进事迹材料
2014/01/17 职场文书
学生生病请假条范文
2014/02/16 职场文书
新学期决心书
2014/03/11 职场文书
乔布斯斯坦福大学演讲稿
2014/05/23 职场文书
办公室务虚会发言材料
2014/10/20 职场文书
文明单位汇报材料
2014/12/24 职场文书
师德师风个人总结
2015/02/06 职场文书
《彼得与狼》教学反思
2016/02/20 职场文书
导游词之茶卡盐湖
2019/11/26 职场文书