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 相关文章推荐
初识JQuery 实例一(first)
Mar 16 Javascript
ko knockoutjs动态属性绑定技巧应用
Nov 14 Javascript
对比分析AngularJS中的$http.post与jQuery.post的区别
Feb 27 Javascript
JQuery判断checkbox是否选中及其它复选框操作方法合集
Jun 01 Javascript
js轮播图透明度切换(带上下页和底部圆点切换)
Apr 27 Javascript
angular 服务的单例模式(依赖注入模式下)详解
Oct 22 Javascript
超好用的jQuery分页插件jpaginate用法示例【附源码下载】
Dec 06 jQuery
vue项目中引入vue-datepicker插件的详解
May 14 Javascript
vue+axios实现post文件下载
Sep 25 Javascript
Vue中qs插件的使用详解
Feb 07 Javascript
vue实现购物车结算功能
Jun 18 Javascript
node.js 如何监视文件变化
Sep 01 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 图片水印类代码
2012/08/27 PHP
php使用Jpgraph绘制柱形图的方法
2015/06/10 PHP
9个比较实用的php代码片段
2016/03/15 PHP
PHP单例模式详解及实例代码
2016/12/21 PHP
PHP静态延迟绑定和普通静态效率的对比
2017/10/20 PHP
js获取div高度的代码
2008/08/09 Javascript
Node.js安装教程和NPM包管理器使用详解
2014/08/16 Javascript
通过JS来动态的修改url,实现对url的增删查改
2014/09/01 Javascript
JS实现的网页倒计时数字时钟效果
2015/03/02 Javascript
js实现简单秒表走动的时钟特效
2020/03/25 Javascript
jQuery垂直多级导航菜单代码分享
2015/08/18 Javascript
Jquery基础教程之DOM操作
2015/08/19 Javascript
Jquery 全选反选实例代码
2015/11/19 Javascript
基于Bootstrap+jQuery.validate实现表单验证
2016/05/30 Javascript
JavaScript实现邮箱地址自动匹配功能代码
2016/11/28 Javascript
手机端js和html5刮刮卡效果
2020/09/29 Javascript
基于jQuery Easyui实现登陆框界面
2017/07/10 jQuery
Layui弹出层 加载 做编辑页面的方法
2019/09/16 Javascript
layer扩展打开/关闭动画的方法
2019/09/23 Javascript
用yum安装MySQLdb模块的步骤方法
2016/12/15 Python
解决python字典对值(值为列表)赋值出现重复的问题
2019/01/20 Python
pandas计算最大连续间隔的方法
2019/07/04 Python
django 连接数据库 sqlite的例子
2019/08/14 Python
python turtle 绘制太极图的实例
2019/12/18 Python
解决ROC曲线画出来只有一个点的问题
2020/02/28 Python
python与idea的集成的实现
2020/11/20 Python
飞利浦西班牙官方网站:Philips西班牙
2020/02/17 全球购物
教师实习期自我鉴定
2013/10/06 职场文书
农业大学毕业生的个人自我评价
2013/10/11 职场文书
化学实验员岗位职责
2013/12/28 职场文书
大学生个人求职口试自我评价
2014/02/16 职场文书
2014预防青少年违法犯罪工作总结
2014/12/10 职场文书
贷款担保书
2015/01/20 职场文书
赔偿协议书怎么写
2015/01/28 职场文书
js实现模拟购物商城案例
2021/05/18 Javascript
Python  序列化反序列化和异常处理的问题小结
2022/12/24 Python