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 相关文章推荐
jQuery插件 tabBox实现代码
Feb 09 Javascript
jquery高效反选具体实现
May 05 Javascript
js获取php变量的实现代码
Aug 10 Javascript
关于onchange事件在IE和FF下的表现及解决方法
Mar 08 Javascript
jQuery中nextUntil()方法用法实例
Jan 07 Javascript
JavaScript实现实时更新系统时间的实例代码
Apr 04 Javascript
详解Node.js开发中的express-session
May 19 Javascript
js评分组件使用详解
Jun 06 Javascript
快速解决select2在bootstrap模态框中下拉框隐藏的问题
Aug 10 Javascript
微信小程序使用npm支持踩坑
Nov 07 Javascript
JS将时间秒转换成天小时分钟秒的字符串
Jul 10 Javascript
浅谈JavaScript中this的指向更改
Jul 28 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分页显示制作详细讲解
2006/12/05 PHP
smarty的保留变量问题
2008/10/23 PHP
linux系统上支持php的 iconv()函数的方法
2011/10/01 PHP
解析linux下安装memcacheq(mcq)全过程笔记
2013/06/27 PHP
php实例分享之通过递归实现删除目录下的所有文件详解
2014/05/15 PHP
PHP简单预防sql注入的方法
2016/09/27 PHP
让复选框只能选择一项的方法
2013/10/08 Javascript
鼠标拖动实现DIV排序示例代码
2013/10/14 Javascript
js实现鼠标滑过文字链接色彩变化的效果
2015/05/06 Javascript
JS实现的最简Table选项卡效果
2015/10/14 Javascript
jquery事件的ready()方法使用详解
2015/11/11 Javascript
jQuery循环遍历子节点并获取值的方法
2016/04/14 Javascript
Avalon中文长字符截取、关键字符隐藏、自定义过滤器
2016/05/18 Javascript
由浅入深剖析Angular表单验证
2016/07/14 Javascript
BootStrap的select2既可以查询又可以输入的实现代码
2017/02/17 Javascript
win系统下nodejs环境安装配置
2017/05/04 NodeJs
在vue项目中使用md5加密的方法
2018/09/14 Javascript
swiper4实现移动端导航栏tab滑动切换
2020/10/16 Javascript
解决ant Design中Select设置initialValue时的大坑
2020/10/29 Javascript
[03:59]5分钟带你了解什么是DOTA2(第二期)
2017/02/07 DOTA
[59:30]完美世界DOTA2联赛PWL S3 access vs LBZS 第二场 12.20
2020/12/23 DOTA
Python操作MySQL简单实现方法
2015/01/26 Python
在Python的框架中为MySQL实现restful接口的教程
2015/04/08 Python
Python中元组,列表,字典的区别
2017/05/21 Python
使用sklearn的cross_val_score进行交叉验证实例
2020/02/28 Python
在Django中预防CSRF攻击的操作
2020/03/13 Python
Windows下Anaconda安装、换源与更新的方法
2020/04/17 Python
pandas apply使用多列计算生成新的列实现示例
2021/02/24 Python
html5页面结构_动力节点Java学院整理
2017/07/10 HTML / CSS
天猫精选:上天猫,就够了
2016/09/21 全球购物
香港优质食材和美酒专门店:FoodWise
2017/09/01 全球购物
政府个人对照检查材料
2014/08/28 职场文书
2014年教研工作总结
2014/12/06 职场文书
党章学习心得体会2016
2016/01/14 职场文书
《孙子兵法》:欲成大事者,需读懂这些致胜策略
2019/08/23 职场文书
详解Python生成器和基于生成器的协程
2021/06/03 Python