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 相关文章推荐
两个DIV等高的JS的实现代码
Dec 23 Javascript
关于锚点跳转及jQuery下相关操作与插件
Oct 01 Javascript
JQuery Highcharts 动态生成图表的方法
Nov 15 Javascript
常用的JavaScript验证正则表达式汇总
Nov 26 Javascript
jQuery实现菜单感应鼠标滑动动画效果的方法
Feb 28 Javascript
jQuery获取页面元素绝对与相对位置的方法
Jun 10 Javascript
浅谈jQuery的offset()方法及示例分享
Jul 17 Javascript
jQuery结合CSS制作动态的下拉菜单
Oct 27 Javascript
基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能
May 16 Javascript
react native 仿微信聊天室实例代码
Sep 17 Javascript
微信小程序纯文本实现@功能
Apr 08 Javascript
vue treeselect获取当前选中项的label实例
Aug 31 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 DOMElement 操作xml 文档的实现代码
2013/05/10 PHP
php中url传递中文字符,特殊危险字符的解决方法
2013/08/17 PHP
jquery 输入框数字限制插件
2009/11/10 Javascript
js弹出模式对话框,并接收回传值的方法
2013/03/12 Javascript
javascript时间函数基础介绍
2013/03/28 Javascript
使用JavaScript修改浏览器URL地址栏的实现代码
2013/10/21 Javascript
javascript的渐进增强与平稳退化浅谈
2013/11/12 Javascript
jquery解析xml字符串示例分享
2014/03/25 Javascript
使用 js+正则表达式为关键词添加链接
2014/11/11 Javascript
javascript使用call调用微信API
2014/12/15 Javascript
jQuery中nextAll()方法用法实例
2015/01/07 Javascript
js实现文本框宽度自适应文本宽度的方法
2015/08/13 Javascript
Node.js数据库操作之连接MySQL数据库(一)
2017/03/04 Javascript
js实现登录框鼠标拖拽效果
2017/03/09 Javascript
Vue开发中整合axios的文件整理
2017/04/29 Javascript
vue组件初学_弹射小球(实例讲解)
2017/09/06 Javascript
基于Vue开发数字输入框组件
2017/12/19 Javascript
vue2.0 循环遍历加载不同图片的方法
2018/03/06 Javascript
JS数组方法reduce的用法实例分析
2020/03/03 Javascript
全网小程序接口请求封装实例代码
2020/11/06 Javascript
[02:47]DOTA2英雄基础教程 野性怒吼兽王
2013/12/05 DOTA
python 参数列表中的self 显式不等于冗余
2008/12/01 Python
python嵌套字典比较值与取值的实现示例
2017/11/03 Python
基于MATLAB和Python实现MFCC特征参数提取
2019/08/13 Python
美国高端婴童品牌:Hanna Andersson
2016/10/30 全球购物
ECCO爱步官方旗舰店:丹麦鞋履品牌
2018/01/02 全球购物
国际象棋商店:The Chess Store
2018/07/09 全球购物
机械设计专业应届生求职信
2013/11/21 职场文书
计算机网络专业推荐信
2013/11/24 职场文书
大学同学聚会邀请函
2014/01/29 职场文书
人事部岗位职责范本
2014/03/05 职场文书
车辆转让协议书
2014/04/15 职场文书
个人自荐材料
2014/05/23 职场文书
企业文化口号
2014/06/12 职场文书
2015年初中教师个人工作总结
2015/07/21 职场文书
Python列表的索引与切片
2022/04/07 Python