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如何实现点击页面获得当前点击元素的id或其他信息
Jan 09 Javascript
返回上一页并自动刷新的JavaScript代码
Feb 19 Javascript
js获取图片宽高的方法
Nov 25 Javascript
浅谈jquery高级方法描述与应用
Oct 04 Javascript
JS绘制微信小程序画布时钟
Dec 24 Javascript
jQuery实现的手风琴侧边菜单效果
Mar 29 jQuery
JS简单实现点击按钮或文字显示遮罩层的方法
Apr 27 Javascript
JS 调试中常见的报错问题解决方法
May 20 Javascript
webstrom Debug 调试vue项目的方法步骤
Jul 17 Javascript
layui文件上传控件带更改后数据传值的方法
Sep 23 Javascript
在JavaScript中如何使用宏详解
May 06 Javascript
JavaScript原型链详解
Nov 07 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版(4)
2006/10/09 PHP
php目录操作函数之获取目录与文件的类型
2010/12/29 PHP
使ecshop模板中可引用常量的实现方法
2011/06/02 PHP
php控制linux服务器常用功能 关机 重启 开新站点等
2012/09/05 PHP
php如何解决无法上传大于8M的文件问题
2014/03/10 PHP
用PHP和Shell写Hadoop的MapReduce程序
2014/04/15 PHP
php 的反射详解及示例代码
2016/08/25 PHP
YII2.0框架行为(Behavior)深入详解
2019/07/26 PHP
JavaScript设计模式学习之“类式继承”
2015/03/12 Javascript
js实现的牛顿摆效果
2015/03/31 Javascript
JavaScript实现点击自动选择TextArea文本的方法
2015/07/02 Javascript
javascript原生ajax写法分享
2016/04/10 Javascript
JavaScript的继承实现小结
2017/05/07 Javascript
JS 调试中常见的报错问题解决方法
2017/05/20 Javascript
nodejs构建本地web测试服务器 如何解决访问静态资源问题
2017/07/14 NodeJs
微信小程序wx.previewImage预览图片实例详解
2017/12/07 Javascript
AngularJS日期格式化常见操作实例分析
2018/05/17 Javascript
Vue CLI3中使用compass normalize的方法
2019/05/30 Javascript
vue-mugen-scroll组件实现pc端滚动刷新
2019/08/16 Javascript
vue+element获取el-table某行的下标,根据下标操作数组对象方式
2020/08/07 Javascript
vue实现div可拖动位置也可改变盒子大小的原理
2020/09/16 Javascript
可拖拽组件slider.js使用方法详解
2020/12/04 Javascript
python3使用PyMysql连接mysql数据库实例
2017/02/07 Python
python使用matplotlib绘制柱状图教程
2017/02/08 Python
python正则中最短匹配实现代码
2018/01/16 Python
使用pycharm在本地开发并实时同步到服务器
2019/08/02 Python
python fuzzywuzzy模块模糊字符串匹配详细用法
2019/08/29 Python
Wedgwood美国官网:英国骨瓷,精美礼品及家居装饰
2018/02/17 全球购物
Qoo10台湾站:亚洲领先的在线市场
2018/05/15 全球购物
银行毕业实习自我鉴定
2013/09/19 职场文书
工程概预算专业毕业生求职信
2013/10/04 职场文书
节约每一滴水演讲稿
2014/09/09 职场文书
弄虚作假心得体会
2014/09/10 职场文书
2015年党员个人工作总结
2015/05/13 职场文书
教师调动申请报告
2015/05/18 职场文书
关于Numpy之repeat、tile的用法总结
2021/06/02 Python