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从右边截取指定字符串的三种实现方法
Nov 29 Javascript
js中new一个对象的过程
Feb 20 Javascript
微信小程序 图片宽高自适应详解
May 11 Javascript
node文字生成图片的示例代码
Oct 26 Javascript
node 命令方式启动修改端口的方法
May 12 Javascript
JS 中可以提升幸福度的小技巧(可以识别更多另类写法)
Jul 28 Javascript
配置一个vue3.0项目的完整步骤
Apr 26 Javascript
JS简单数组排序操作示例【sort方法】
May 17 Javascript
小程序实现层叠卡片滑动效果
Aug 26 Javascript
js实现踩五彩块游戏
Feb 08 Javascript
原生js实现随机点名
Jul 05 Javascript
Vue-cli4 配置 element-ui 按需引入操作
Sep 11 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
支持oicq头像的留言簿(二)
2006/10/09 PHP
对javascript和select部件的结合运用
2006/10/09 PHP
php实现的Cookies操作类实例
2014/09/24 PHP
php将一维数组转换为每3个连续值组成的二维数组
2016/05/06 PHP
JavaScript 异步调用框架 (Part 4 - 链式调用)
2009/08/04 Javascript
jQuery 获取对象 基本选择与层级
2010/05/31 Javascript
更优雅的事件触发兼容
2011/10/24 Javascript
通过jQuery源码学习javascript(三)
2012/12/27 Javascript
P3P Header解决Cookie跨域的问题
2013/03/12 Javascript
Extjs单独定义各组件的实例代码
2013/06/25 Javascript
简单的代码实现jquery定时器
2013/11/17 Javascript
如何将php数组或者对象传递给javascript
2014/03/20 Javascript
jQuery实现回车键(Enter)切换文本框焦点的代码实例
2014/05/05 Javascript
jquery实现的3D旋转木马特效代码分享
2015/08/25 Javascript
AngularJS入门(用ng-repeat指令实现循环输出
2016/05/05 Javascript
基于JS实现带动画效果的流程进度条
2018/06/01 Javascript
vue-lazyload使用总结(推荐)
2018/11/01 Javascript
layui实现三级联动效果
2019/07/26 Javascript
[41:11]完美世界DOTA2联赛PWL S2 Inki vs Magma 第一场 11.22
2020/11/24 DOTA
python操作MySQL数据库的方法分享
2012/05/29 Python
利用pytorch实现对CIFAR-10数据集的分类
2020/01/14 Python
python如何通过pyqt5实现进度条
2020/01/20 Python
python使用html2text库实现从HTML转markdown的方法详解
2020/02/21 Python
Python selenium使用autoIT上传附件过程详解
2020/05/26 Python
python字典的值可以修改吗
2020/06/29 Python
html5 offlline 缓存使用示例
2013/06/24 HTML / CSS
传统软件工程与面向对象的软件工程有什么区别
2012/05/31 面试题
EJB发布WEB服务一般步骤
2012/10/31 面试题
学校地质灾害防治方案
2014/06/10 职场文书
伦敦奥运会口号
2014/06/13 职场文书
机关领导干部作风整顿整改措施
2014/09/19 职场文书
2014年综治维稳工作总结
2014/11/17 职场文书
2014年应急工作总结
2014/12/11 职场文书
青年志愿者服务活动总结
2015/05/06 职场文书
Java org.w3c.dom.Document 类方法引用报错
2021/08/07 Java/Android
前端使用svg图片改色实现示例
2022/07/23 HTML / CSS