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 相关文章推荐
JS中的public和private对象,即static修饰符
Jan 18 Javascript
解析ScrollPic在ie8下只滚动一遍,然后变为空白 ie6,ie7,chrome,firefox正常
Jun 26 Javascript
JS 去前后空格大全(IE9亲测)
Jul 15 Javascript
jquery.validate的使用说明介绍
Nov 12 Javascript
jquery 合并内容相同的单元格(示例代码)
Dec 13 Javascript
JavaScript中的setUTCDate()方法使用详解
Jun 11 Javascript
JS实现支持多选的遍历下拉列表代码
Aug 20 Javascript
jQuery数据类型小结(14个)
Jan 08 Javascript
JavaScript  event对象整理及详细介绍
Oct 10 Javascript
jQuery html表格排序插件tablesorter使用方法详解
Feb 10 Javascript
详解Vuex中mapState的具体用法
Sep 28 Javascript
关于vue项目中搜索节流的实现代码
Sep 17 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
ajax缓存问题解决途径
2006/12/06 PHP
查找mysql字段中固定字符串并替换的几个方法
2012/09/23 PHP
PHP使用CURL实现对带有验证码的网站进行模拟登录的方法
2014/07/23 PHP
php中chdir()函数用法实例
2014/11/13 PHP
详解WordPress中的头像缓存和代理中的缓存更新方法
2016/03/01 PHP
利用PHP获取网站访客的所在地位置
2017/01/18 PHP
详解yii2使用多个数据库的案例
2017/06/16 PHP
关于Blog顶部的滚动导航条代码
2006/09/25 Javascript
超级退弹代码
2008/07/07 Javascript
javascript中的prototype属性使用说明(函数功能扩展)
2010/08/16 Javascript
浏览器兼容console对象的简要解决方案分享
2013/10/24 Javascript
JavaScript执行顺序详细介绍
2013/12/04 Javascript
JQuery中的事件及动画用法实例
2015/01/26 Javascript
jQuery的几个我们必须了解的特点
2015/05/03 Javascript
node.js调用C++开发的模块实例
2015/07/03 Javascript
解决jQuery上传插件Uploadify出现Http Error 302错误的方法
2015/12/18 Javascript
让html元素随浏览器的大小自适应垂直居中的实现方法
2016/10/12 Javascript
教你快速搭建Node.Js服务器的方法教程
2017/03/30 Javascript
json数据传到前台并解析展示成列表的方法
2018/08/06 Javascript
微信小程序首页的分类功能和搜索功能的实现思路及代码详解
2018/09/11 Javascript
浅谈vue 锚点指令v-anchor的使用
2019/11/13 Javascript
使用Karma做vue组件单元测试的实现
2020/01/16 Javascript
javascript使用Blob对象实现的下载文件操作示例
2020/04/18 Javascript
[03:40]DOTA2抗疫特别篇《英雄年代》
2020/02/28 DOTA
Python使用openpyxl读写excel文件的方法
2017/06/30 Python
python 实现登录网页的操作方法
2018/05/11 Python
Python Scrapy框架第一个入门程序示例
2020/02/05 Python
animation和transition的区别
2020/10/12 HTML / CSS
EMU Australia澳大利亚官网:澳大利亚本土雪地靴品牌
2019/07/24 全球购物
卫校中专生个人自我评价
2013/09/19 职场文书
清明节演讲稿
2014/05/27 职场文书
司机岗位职责说明书
2014/07/29 职场文书
忠诚奉献演讲稿
2014/09/12 职场文书
群众路线教育实践活动总结
2014/10/30 职场文书
2015年行政人事部工作总结
2015/05/13 职场文书
2015年基层党建工作总结
2015/05/14 职场文书