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 相关文章推荐
Javascript 圆角div的实现代码
Oct 15 Javascript
Exjs 入门篇
Apr 07 Javascript
jquery判断元素的子元素是否存在的示例代码
Feb 04 Javascript
按Enter键触发事件的jquery方法实现代码
Feb 17 Javascript
javascript框架设计读书笔记之模块加载系统
Dec 02 Javascript
js编写贪吃蛇的小游戏
Aug 24 Javascript
JavaScript实现99乘法表及隔行变色实例代码
Feb 24 Javascript
PassWord输入框代码分享
Jun 07 Javascript
JavaScript实现复制文章自动添加版权
Aug 02 Javascript
Node.js pipe实现源码解析
Aug 12 Javascript
JavaScript实现新年倒计时效果
Nov 17 Javascript
微信小程序开发之左右分栏效果的实例代码
May 20 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中获取时间的下一周下个月的方法
2014/03/18 PHP
php+ajax实现无刷新分页的方法
2014/11/04 PHP
Yii框架中jquery表单验证插件用法示例
2016/10/18 PHP
Javascript下IE与Firefox下的差异兼容写法总结
2010/06/18 Javascript
JavaScript 获取当前时间戳的代码
2010/08/05 Javascript
精心挑选的15款优秀jQuery 本特效插件和教程
2012/08/06 Javascript
Jquery Validate 正则表达式实用验证代码大全
2013/08/23 Javascript
在AngularJS应用中实现一些动画效果的代码
2015/06/18 Javascript
javascript实现简单计算器效果【推荐】
2016/04/19 Javascript
js添加绑定事件的方法
2016/05/15 Javascript
基于Vuejs实现购物车功能
2016/08/02 Javascript
JavaScript+HTML5实现的日期比较功能示例
2017/07/12 Javascript
vuejs element table 表格添加行,修改,单独删除行,批量删除行操作
2020/07/18 Javascript
vue 添加和编辑用同一个表单,el-form表单提交后清空表单数据操作
2020/08/03 Javascript
Python中DJANGO简单测试实例
2015/05/11 Python
python使用线程封装的一个简单定时器类实例
2015/05/16 Python
MySQL中表的复制以及大型数据表的备份教程
2015/11/25 Python
Python 查看list中是否含有某元素的方法
2018/06/27 Python
浅谈python3发送post请求参数为空的情况
2018/12/28 Python
python给微信好友定时推送消息的示例
2019/02/20 Python
Python numpy线性代数用法实例解析
2019/11/15 Python
将数据集制作成VOC数据集格式的实例
2020/02/17 Python
pytorch数据预处理错误的解决
2020/02/20 Python
jupyter notebook 调用环境中的Keras或者pytorch教程
2020/04/14 Python
世界领先的豪华床上用品供应商之一:Bedeck Home
2019/03/18 全球购物
Steiff台湾官网:德国金耳釦泰迪熊
2019/12/26 全球购物
监理员的岗位职责
2013/11/13 职场文书
平民服装店创业计划书
2014/01/17 职场文书
服务员自我评价
2014/01/25 职场文书
道路施工安全责任书
2014/07/24 职场文书
小学德育工作总结2015
2015/05/12 职场文书
小学中队长竞选稿
2015/11/20 职场文书
python3美化表格数据输出结果的实现代码
2021/04/14 Python
python开发飞机大战游戏
2021/07/15 Python
MySQL数据库查询之多表查询总结
2022/08/05 MySQL
CSS 实现磨砂玻璃(毛玻璃)效果样式
2023/05/21 HTML / CSS