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 相关文章推荐
用YUI做了个标签浏览效果
Feb 20 Javascript
IE与firefox之jquery用法区别
Oct 03 Javascript
Javascript生成json的函数代码(可以用php的json_decode解码)
Jun 11 Javascript
js/jQuery对象互转(快速操作dom元素)
Feb 04 Javascript
JavaScript Promise 用法
Jun 14 Javascript
AngularJS内建服务$location及其功能详解
Jul 01 Javascript
js实现HashTable(哈希表)的实例分析
Nov 21 Javascript
Bootstrap 模态框实例插件案例分析
Dec 28 Javascript
jQuery实现checkbox即点即改批量删除及中间遇到的坑
Nov 11 jQuery
JavaScript函数式编程(Functional Programming)箭头函数(Arrow functions)用法分析
May 22 Javascript
JS实现页面数据懒加载
Feb 13 Javascript
JavaScript中数组去重的5种方法
Jul 04 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的库,结果发现很多东西
2006/12/31 PHP
php按百分比生成缩略图的代码分享
2014/05/10 PHP
PHP图片等比例缩放生成缩略图函数分享
2014/06/10 PHP
PHP之autoload运行机制实例分析
2014/08/28 PHP
PHP convert_cyr_string()函数讲解
2019/02/13 PHP
完美兼容各大浏览器的jQuery插件实现图片切换特效
2014/12/12 Javascript
JS鼠标拖拽实例分析
2015/11/23 Javascript
功能强大的Bootstrap使用手册(一)
2016/08/02 Javascript
详解Angular的数据显示优化处理
2016/12/26 Javascript
vue实现简单表格组件实例详解
2017/04/16 Javascript
微信小程序商城项目之商品属性分类(4)
2017/04/17 Javascript
利用jquery去掉时光轴头尾部线条的方法实例
2017/06/16 jQuery
Node.js简单入门前传
2017/08/21 Javascript
node内置调试方法总结
2018/02/22 Javascript
Angular通过指令动态添加组件问题
2018/07/09 Javascript
17道题让你彻底理解JS中的类型转换
2019/08/08 Javascript
解决Echarts 显示隐藏后宽度高度变小的问题
2020/07/19 Javascript
解决removeEventListener 无法清除监听的问题
2020/10/30 Javascript
jquery实现穿梭框功能
2021/01/19 jQuery
python实现探测socket和web服务示例
2014/03/28 Python
详解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别
2017/06/23 Python
Python3.4编程实现简单抓取爬虫功能示例
2017/09/14 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
2018/07/30 Python
Python collections模块使用方法详解
2019/08/28 Python
Python 实现使用空值进行赋值 None
2020/03/12 Python
python selenium自动化测试框架搭建的方法步骤
2020/06/14 Python
Anconda环境下Vscode安装Python的方法详解
2020/03/29 Python
中邮全球便购:中国邮政速递物流
2017/03/04 全球购物
师范生实习个人的自我评价
2013/09/28 职场文书
创先争优制度
2014/01/21 职场文书
学生操行评语大全
2014/04/24 职场文书
意外伤害赔偿协议书范本
2014/09/28 职场文书
公司离职证明范本
2014/10/17 职场文书
python urllib库的使用详解
2021/04/13 Python
python代码实现扫码关注公众号登录的实战
2021/11/01 Python
MySQL 逻辑备份 into outfile
2022/05/15 MySQL