JS 遮照层实现代码


Posted in Javascript onMarch 31, 2010

1.先上效果图:
JS 遮照层实现代码
2.使用方法:
初始化:Overlayer.Initialize({ZIndex:100,Backgrund:#666,Opacity:80});
显示:Overlayer.Show();或Overlayer.Initialize({ZIndex:100,Backgrund:#666,Opacity:80}).Show();
关闭:Overlayer.Close();
3.代码如下:
公用函数:

function GetDocumentObject() 
{ 
var obj; 
if(document.compatMode=='BackCompat') 
{ 
obj=document.body; 
} 
else 
{ 
obj=document.documentElement 
} 
return obj; 
} 
function GetPageSize() 
{ 
var obj = GetDocumentObject(); 
//alert('pagesize:'+obj); 
with(obj) 
{ 
return {width:((scrollWidth>clientWidth)?scrollWidth:clientWidth),height:( (scrollHeight>clientHeight)?scrollHeight:clientHeight)} 
} 
} 
var Extend = function(destination, source) 
{ 
for (var property in source) 
{ 
destination[property] = source[property]; 
} 
}; 
var BindAsEventListener = function(object, fun) 
{ 
var args = Array.prototype.slice.call(arguments).slice(2); 
return function(event) 
{ 
return fun.apply(object, [event || window.event].concat(args)); 
} 
}

遮照层代码:
/* 
遮照层 
*/ 
var Overlayer= 
{ 
//遮照层ID,这个是硬编码的 
ID:'__DSKJOVERLAYER_BY_KEVIN', 
//Z轴顺序 
ZIndex:0, 
//背景颜色 
Background:'#333', 
//透明度 
Opacity:60, 
// 
Obj:'' 
}; 
/* 
初始化 
*/ 
Overlayer.Initialize=function(o) 
{ 
//创建Html元素 
this.Create(); 
//扩展属性赋值 
Extend(this,o); 
//设置样式 
this.SetStyleCss(); 
//附加事件 
AddListener(window,'resize',BindAsEventListener(this,this.Resize)); 
AddListener(window,'scroll',BindAsEventListener(this,function() 
{ 
this._PageSize=GetPageSize(); 
if(this._PageSize.height!=this._height) 
{ 
this.Resize(); 
this._height=this._PageSize.height; 
} 
})); 
return this; 
} 
/* 
创建HTML元素 
*/ 
Overlayer.Create=function() 
{ 
//alert('create'); 
var obj=$(this.ID); 
if(!obj) 
{ 
obj = document.createElement('div'); 
obj.id=this.ID; 
obj.style.display='none'; 
document.body.appendChild(obj); 
} 
this.Obj=obj; 
} 
/* 
设置样式 
*/ 
Overlayer.SetStyleCss=function() 
{ 
with(this.Obj.style) 
{ 
position = 'absolute'; 
background = this.Background; 
left = '0px'; 
top = '0px'; 
this.Resize(); 
zIndex = this.ZIndex; 
filter = 'Alpha(Opacity='+this.Opacity+')';//IE逆境 
opacity = this.Opacity/100;//非IE 
} 
} 
/* 
窗口改变大小时重新设置宽度和高度 
*/ 
Overlayer.Resize=function() 
{ 
if(this.Obj) 
{ 
var size=GetPageSize(); 
this.Obj.style.width=size.width+'px'; 
this.Obj.style.height=size.height+'px'; 
} 
} 
/* 
显示层 
*/ 
Overlayer.Show=function() 
{ 
//alert('show'+Overlayer.ID); 
if(this.Obj) 
{ 
this.Obj.style.display='block'; 
this.Resize(); 
} 
} 
/* 
关闭层,采用隐藏层的方法实现 
*/ 
Overlayer.Close=function() 
{ 
var overlay=this.Obj; 
if(overlay) 
{ 
overlay.style.display='none'; 
} 
}

4.结束语
欢迎拍砖,谢谢。
Javascript 相关文章推荐
ext checkboxgroup 回填数据解决
Aug 21 Javascript
解读JavaScript中 For, While与递归的用法
May 07 Javascript
js实现简单鼠标跟随效果的方法
Apr 10 Javascript
jQuery 如何给Carousel插件添加新的功能
Apr 18 Javascript
浅谈JavaScript对象与继承
Jul 10 Javascript
JS获取当前页面名称的简单实例
Aug 19 Javascript
bootstrap弹出层的多种触发方式
May 10 Javascript
JavaScript函数绑定用法实例分析
Nov 14 Javascript
create-react-app 修改为多入口编译的方法
Aug 01 Javascript
layui表格内容溢出的解决方法
Sep 06 Javascript
vue 使用鼠标滚动加载数据的例子
Oct 31 Javascript
javascript利用canvas实现鼠标拖拽功能
Jul 23 Javascript
js压缩工具 yuicompressor 使用教程
Mar 31 #Javascript
jQuery 遍历json数组的实现代码
Sep 22 #Javascript
Javascript load Page,load css,load js实现代码
Mar 31 #Javascript
Javascript Jquery 遍历Json的实现代码
Mar 31 #Javascript
jquery+json实现的搜索加分页效果
Mar 31 #Javascript
EXTJS内使用ACTIVEX控件引起崩溃问题的解决方法
Mar 31 #Javascript
ExtJS TabPanel beforeremove beforeclose使用说明
Mar 31 #Javascript
You might like
PHP中函数rand和mt_rand的区别比较
2012/12/26 PHP
PHP中异常处理的一些方法整理
2015/07/03 PHP
javascript小组件 原生table排序表格脚本(兼容ie firefox opera chrome)
2012/07/25 Javascript
Javascript全局变量var与不var的区别深入解析
2013/12/09 Javascript
jQuery解析XML与传统JavaScript方法的差别实例分析
2015/03/05 Javascript
JavaScript实现对下拉列表值进行排序的方法
2015/07/15 Javascript
全面理解JavaScript中的闭包
2016/05/12 Javascript
express文件上传中间件Multer详解
2016/10/24 Javascript
Vue.js中的computed工作原理
2018/03/22 Javascript
详解vue表单——小白速看
2018/04/08 Javascript
详解小程序不同页面之间通讯的解决方案
2018/11/23 Javascript
为nuxt项目写一个面包屑cli工具实现自动生成页面与面包屑配置
2019/09/29 Javascript
js实现带搜索功能的下拉框
2020/01/11 Javascript
原生JavaScript写出Tabs标签页的实例代码
2020/07/20 Javascript
[02:15]你好,这就是DOTA!
2015/08/05 DOTA
[51:00]Secret vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
python将文本转换成图片输出的方法
2015/04/28 Python
python魔法方法-属性访问控制详解
2016/07/25 Python
基于python 二维数组及画图的实例详解
2018/04/03 Python
DataFrame 将某列数据转为数组的方法
2018/04/13 Python
Python实现的knn算法示例
2018/06/14 Python
numpy 对矩阵中Nan的处理:采用平均值的方法
2018/10/30 Python
Python之循环结构
2019/01/15 Python
Python正则表达式匹配日期与时间的方法
2019/07/07 Python
Python3分析处理声音数据的例子
2019/08/27 Python
Python递归及尾递归优化操作实例分析
2020/02/01 Python
Python3 字典dictionary入门基础附实例
2020/02/10 Python
pygame用blit()实现动画效果的示例代码
2020/05/28 Python
HTML5 Canvas 实现圆形进度条并显示数字百分比效果示例
2017/08/18 HTML / CSS
酒店服务与管理毕业生求职信
2013/11/02 职场文书
读书活动总结
2014/04/28 职场文书
个人反四风对照检查材料思想汇报
2014/09/23 职场文书
追悼会答谢词
2015/01/05 职场文书
三好学生主要事迹怎么写
2015/11/03 职场文书
先进个人事迹材料(2016推荐版)
2016/03/01 职场文书
MySQL的Query Cache图文详解
2021/07/01 MySQL