JavaScript实现弹出DIV层同时页面背景渐变成半透明效果


Posted in Javascript onMarch 25, 2016

本文实例讲述了JavaScript实现弹出DIV层同时页面背景渐变成半透明效果。分享给大家供大家参考,具体如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>JavaScript弹出DIV层,页面背景渐变成半透明</title>
<style>
html,body{font-size:12px;margin:0px;height:100%;}
.mesWindow{border:#666 1px solid;background:#fff;}
.mesWindowTop{border-bottom:#eee 1px solid;margin-left:4px;padding:3px;font-weight:bold;text-align:left;font-size:12px;}
.mesWindowContent{margin:4px;font-size:12px;}
.mesWindow .close{height:15px;width:28px;border:none;cursor:pointer;text-decoration:underline;background:#fff}
</style>
<script>
var isIe=(document.all)?true:false;
//设置select的可见状态
function setSelectState(state)
{
var objl=document.getElementsByTagName('select');
for(var i=0;i<objl.length;i++)
{
objl[i].style.visibility=state;
}
}
function mousePosition(ev)
{
if(ev.pageX || ev.pageY)
{
return {x:ev.pageX, y:ev.pageY};
}
return {
x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,y:ev.clientY + document.body.scrollTop - document.body.clientTop
};
}
//弹出方法
function showMessageBox(wTitle,content,pos,wWidth)
{
closeWindow();
var bWidth=parseInt(document.documentElement.scrollWidth);
var bHeight=parseInt(document.documentElement.scrollHeight);
if(isIe){
setSelectState('hidden');}
var back=document.createElement("div");
back.id="back";
var styleStr="top:0px;left:0px;position:absolute;background:#666;width:"+bWidth+"px;height:"+bHeight+"px;";
styleStr+=(isIe)?"filter:alpha(opacity=0);":"opacity:0;";
back.style.cssText=styleStr;
document.body.appendChild(back);
showBackground(back,50);
var mesW=document.createElement("div");
mesW.id="mesWindow";
mesW.className="mesWindow";
mesW.innerHTML="<div class='mesWindowTop'><table width='100%' height='100%'><tr><td>"+wTitle+"</td><td style='width:1px;'><input type='button' onclick='closeWindow();' title='关闭窗口' class='close' value='关闭' /></td></tr></table></div><div class='mesWindowContent' id='mesWindowContent'>"+content+"</div><div class='mesWindowBottom'></div>";
styleStr="left:"+(((pos.x-wWidth)>0)?(pos.x-wWidth):pos.x)+"px;top:"+(pos.y)+"px;position:absolute;width:"+wWidth+"px;";
mesW.style.cssText=styleStr;
document.body.appendChild(mesW);
}
//让背景渐渐变暗
function showBackground(obj,endInt)
{
if(isIe)
{
obj.filters.alpha.opacity+=1;
if(obj.filters.alpha.opacity<endInt)
{
setTimeout(function(){showBackground(obj,endInt)},5);
}
}else{
var al=parseFloat(obj.style.opacity);al+=0.01;
obj.style.opacity=al;
if(al<(endInt/100))
{setTimeout(function(){showBackground(obj,endInt)},5);}
}
}
//关闭窗口
function closeWindow()
{
if(document.getElementById('back')!=null)
{
document.getElementById('back').parentNode.removeChild(document.getElementById('back'));
}
if(document.getElementById('mesWindow')!=null)
{
document.getElementById('mesWindow').parentNode.removeChild(document.getElementById('mesWindow'));
}
if(isIe){
setSelectState('');}
}
//测试弹出
function testMessageBox(ev)
{
var objPos = mousePosition(ev);
messContent="<div style='padding:20px 0 20px 0;text-align:center'>消息正文</div>";
showMessageBox('窗口标题',messContent,objPos,350);
}
</script>
</head>
<body>
<div style="padding:20px">
<div style="text-align:left";><a href="#none" onclick="testMessageBox(event);">弹出窗口</a></div>
<div style="text-align:left;padding-left:20px;padding-top:10px";><select ID="Select1" NAME="Select1"><option>下拉</option></select>弹出窗口时会将其隐藏,关闭时会让其显示,目的是在IE中防止弹出的DIV挡不住下拉框</div>
<div style="text-align:center";><a href="#none" onclick="testMessageBox(event);">弹出窗口</a></div>
<div style="text-align:right";><a href="#none" onclick="testMessageBox(event);">弹出窗口</a></div>
</div>
<br />
</body>
</html>

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
Javascript实现的鼠标经过时播放声音
May 18 Javascript
jQueryUI的Dialog的简单封装
Jun 07 Javascript
详谈 Jquery Ajax异步处理Json数据.
Sep 09 Javascript
Javascript中arguments对象详解
Oct 22 Javascript
AngularJS基础知识
Dec 21 Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
Jul 17 Javascript
asp.net+jquery.form实现图片异步上传的方法(附jquery.form.js下载)
May 05 Javascript
AngularJS 过滤器的简单实例
Jul 27 Javascript
javascript鼠标滑过显示二级菜单特效
Nov 18 Javascript
使用JS获取页面上的所有标签
Oct 18 Javascript
详解vue 项目白屏解决方案
Oct 31 Javascript
JavaScript中concat复制数组方法浅析
Jan 20 Javascript
JavaScript修改作用域外变量的方法
Mar 25 #Javascript
JavaScript 2048 游戏实例代码(简单易懂)
Mar 25 #Javascript
JavaScript入门系列之知识点总结
Mar 24 #Javascript
JS实现支持Ajax验证的表单插件
Mar 24 #Javascript
拥有一个属于自己的javascript表单验证插件
Mar 24 #Javascript
jquery zTree异步加载、模糊搜索简单实例分享
Mar 24 #Javascript
js+css实现select的美化效果
Mar 24 #Javascript
You might like
php设计模式 Prototype (原型模式)代码
2011/06/26 PHP
PHP生成验证码时“图像因其本身有错无法显示”的解决方法
2013/08/07 PHP
thinkphp实现图片上传功能
2016/01/13 PHP
详解php用curl调用接口方法,get和post两种方式
2017/01/13 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
2020/02/21 PHP
学习YUI.Ext 第七天--关于View&amp;JSONView
2007/03/10 Javascript
JavaScript格式化数字的函数代码
2010/11/30 Javascript
精心挑选的15款优秀jQuery 本特效插件和教程
2012/08/06 Javascript
在js(jquery)中获得文本框焦点和失去焦点的方法
2012/12/04 Javascript
自定义jQuery选项卡插件实例
2013/03/27 Javascript
Javascript中prototype属性实现给内置对象添加新的方法
2015/05/14 Javascript
深入浅析Bootstrap列表组组件
2016/05/03 Javascript
关于JavaScript 原型链的一点个人理解
2016/07/31 Javascript
Node.js中防止错误导致的进程阻塞的方法
2016/08/11 Javascript
JS拉起或下载app的实现代码
2017/02/22 Javascript
jQuery扩展_动力节点Java学院整理
2017/07/05 jQuery
vue二级路由设置方法
2018/02/09 Javascript
原生JavaScript实现remove()和recover()功能示例
2018/07/24 Javascript
JavaScript设计模式之享元模式实例详解
2019/01/17 Javascript
Node.js系列之发起get/post请求(2)
2019/08/30 Javascript
解决layer.open弹出框不能获取input框的值为空的问题
2019/09/10 Javascript
Vue.js组件props数据验证实现详解
2019/10/19 Javascript
[02:23]DOTA2英雄基础教程 幻影长矛手
2013/12/09 DOTA
[14:24]Optic Gaming vs PSG LGD BO3
2018/06/07 DOTA
[54:19]完美世界DOTA2联赛PWL S2 Magma vs PXG 第二场 11.28
2020/12/01 DOTA
Win7下搭建python开发环境图文教程(安装Python、pip、解释器)
2016/05/17 Python
基于python中的TCP及UDP(详解)
2017/11/06 Python
Python使用Phantomjs截屏网页的方法
2018/05/17 Python
python实现逆序输出一个数字的示例讲解
2018/06/25 Python
使用django实现一个代码发布系统
2019/07/18 Python
Python爬取豆瓣视频信息代码实例
2019/11/16 Python
Matplotlib中%matplotlib inline如何使用
2020/07/28 Python
Python私有属性私有方法应用实例解析
2020/09/15 Python
Gap中国官网:美式休闲风服饰
2017/02/05 全球购物
物业电工岗位职责
2013/11/20 职场文书
2014年庆祝国庆65周年演讲稿
2014/09/21 职场文书