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 相关文章推荐
Extjs4 关于Store的一些操作(加载/回调/添加)
Apr 18 Javascript
js中同步与异步处理的方法和区别总结
Dec 25 Javascript
jQuery实现textarea自动增长宽高的方法
Dec 18 Javascript
JavaScript浏览器对象模型BOM(BrowserObjectModel)实例详解
Nov 29 Javascript
JS中的BOM应用
Feb 02 Javascript
Angular CLI在Angular项目中如何使用scss详解
Apr 10 Javascript
微信小程序6位或多位验证码密码输入框功能的实现代码
May 29 Javascript
React父子组件间的传值的方法
Nov 13 Javascript
vscode vue 文件模板的配置方法
Jul 23 Javascript
原生js+css调节音量滑块
Jan 15 Javascript
js+canvas实现五子棋小游戏
Aug 02 Javascript
vue3 自定义图片放大器效果的示例代码
Jul 23 Vue.js
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 中dirname(_file_)讲解
2007/03/18 PHP
PHP 类商品秒杀计时实现代码
2010/05/05 PHP
php字符串过滤与替换小结
2015/01/26 PHP
PHP数组操作类实例
2015/07/11 PHP
php获取flash尺寸详细数据的方法
2016/11/12 PHP
PHP实现的统计数据功能详解
2016/12/06 PHP
PHP使用preg_split和explode分割textarea存放内容的方法分析
2017/07/03 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
jquery 学习之二 属性 文本与值(text,val)
2010/11/25 Javascript
如何将JS的变量值传递给ASP变量
2012/12/10 Javascript
Node.js生成HttpStatusCode辅助类发布到npm
2013/04/09 Javascript
JS在TextArea光标位置插入文字并实现移动光标到文字末尾
2013/06/21 Javascript
angular4 共享服务在多个组件中数据通信的示例
2018/03/30 Javascript
Less 安装及基本用法
2018/05/05 Javascript
vue-router重定向不刷新问题的解决
2018/06/25 Javascript
js实现轮播图的完整代码
2020/10/26 Javascript
Node.js API详解之 timer模块用法实例分析
2020/05/07 Javascript
JavaScript, select标签元素左右移动功能实现
2020/05/14 Javascript
微信小程序实现底部弹出模态框
2020/11/18 Javascript
基于jQuery拖拽事件的封装
2020/11/29 jQuery
pandas中Timestamp类用法详解
2017/12/11 Python
Python 数据处理库 pandas 入门教程基本操作
2018/04/19 Python
浅谈pytorch和Numpy的区别以及相互转换方法
2018/07/26 Python
itchat-python搭建微信机器人(附示例)
2019/06/11 Python
Pandas之MultiIndex对象的示例详解
2019/06/25 Python
Python中IP地址处理IPy模块的方法
2019/08/16 Python
Dr. Martens马汀博士官网:马丁靴始祖品牌
2016/10/15 全球购物
澳大利亚手袋、珠宝和在线时尚精品店:The Way
2019/12/21 全球购物
岳父生日宴会答谢词
2014/01/13 职场文书
英语专业学生个人求职信
2014/01/28 职场文书
岗位廉洁从政承诺书
2014/03/27 职场文书
卫生院艾滋病宣传活动小结
2014/07/09 职场文书
党员转正介绍人意见
2015/06/03 职场文书
幼儿园六一儿童节主持词
2015/06/30 职场文书
2019求职信大礼包
2019/05/15 职场文书
详解NodeJS模块化
2021/06/15 NodeJs