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 相关文章推荐
解放web程序员的输入验证
Oct 06 Javascript
doctype后如何获得body.clientHeight的方法
Jul 11 Javascript
使用plupload自定义参数实现多文件上传
Jul 19 Javascript
JavaScript实现格式化字符串函数String.format
Dec 16 Javascript
利用策略模式与装饰模式扩展JavaScript表单验证功能
Feb 14 Javascript
javascript基于牛顿迭代法实现求浮点数的平方根【递归原理】
Sep 28 Javascript
vue的无缝滚动组件vue-seamless-scroll实例
Dec 18 Javascript
vue页面跳转后返回原页面初始位置方法
Feb 11 Javascript
vue动画之点击按钮往上渐渐显示出来的实例
Sep 29 Javascript
vue实现多个echarts根据屏幕大小变化而变化实例
Jul 19 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
Jul 22 Javascript
vue实现列表拖拽排序的示例代码
Apr 08 Vue.js
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
php5 pdo新改动加载注意事项
2008/09/11 PHP
php简单获取文件扩展名的方法
2015/03/24 PHP
一个javascript图片阅览组件
2010/11/09 Javascript
基于jquery自定义图片热区效果
2012/07/21 Javascript
jQuery实现向下滑出的二级菜单效果实例
2015/08/22 Javascript
javascript Slip.js实现整屏滑动的手机网页
2015/11/25 Javascript
理解js对象继承的N种模式
2016/01/25 Javascript
JS获取复选框的值,并传递到后台的实现方法
2016/05/30 Javascript
jQuery mobile在页面加载时添加加载中效果 document.ready 和window.onload执行顺序比较
2016/07/14 Javascript
Jquery组件easyUi实现选项卡切换示例
2016/08/23 Javascript
Vue精简版风格指南(推荐)
2018/01/30 Javascript
webpack4之SplitChunksPlugin使用指南
2018/06/12 Javascript
js数组去重的方法总结
2019/01/18 Javascript
nodejs log4js 使用详解
2019/05/31 NodeJs
jQuery AJAX应用实例总结
2020/05/19 jQuery
Vue+ElementUI 中级联选择器Bug问题的解决
2020/07/31 Javascript
JavaScript实现五子棋小游戏
2020/10/26 Javascript
[51:17]Mski vs VGJ.S Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
总结Python编程中函数的使用要点
2016/03/20 Python
python 性能提升的几种方法
2016/07/15 Python
python3使用PyMysql连接mysql数据库实例
2017/02/07 Python
Python GUI编程 文本弹窗的实例
2019/06/11 Python
pandas的to_datetime时间转换使用及学习心得
2019/08/11 Python
pytorch 在网络中添加可训练参数,修改预训练权重文件的方法
2019/08/17 Python
调试Django时打印SQL语句的日志代码实例
2019/09/12 Python
keras使用Sequence类调用大规模数据集进行训练的实现
2020/06/22 Python
浅谈keras 模型用于预测时的注意事项
2020/06/27 Python
使用python脚本自动生成K8S-YAML的方法示例
2020/07/12 Python
Python趣味入门教程之循环语句while
2020/08/26 Python
纯CSS3实现的8种Loading动画效果
2014/07/05 HTML / CSS
YesStyle美国/全球:购买亚洲时装、美容化妆品和生活百货
2017/01/16 全球购物
电子狗项圈:eDog Australia
2019/12/04 全球购物
企业管理部经理岗位职责
2013/12/24 职场文书
个人职业生涯规划书1500字
2013/12/31 职场文书
副科竞争上岗演讲稿
2014/05/12 职场文书
群众路线领导班子四风对照检查材料
2014/09/27 职场文书