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技巧来提高你的代码
Jan 08 Javascript
快速排序 php与javascript的不同之处
Feb 22 Javascript
iframe子父页面调用js函数示例
Nov 07 Javascript
javascript阻止浏览器后退事件防止误操作清空表单
Nov 22 Javascript
Jquery each方法跳出循环,并获取返回值(实例讲解)
Dec 12 Javascript
Javascript中With语句用法实例
May 14 Javascript
JavaScript实现的多个图片广告交替显示效果代码
Sep 04 Javascript
ionic2懒加载配置详解
Sep 01 Javascript
vue iview组件表格 render函数的使用方法详解
Mar 15 Javascript
vue+element UI实现树形表格带复选框的示例代码
Apr 16 Javascript
微信小程序整合使用富文本编辑器的方法详解
Apr 25 Javascript
jQuery事件绑定和解绑、事件冒泡与阻止事件冒泡及弹出应用示例
May 13 jQuery
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抓取蜘蛛爬虫痕迹的示例代码
2016/09/30 PHP
详解PHP安装mysql.so扩展的方法
2016/12/31 PHP
PHPStudy下如何为Apache安装SSL证书的方法步骤
2019/01/23 PHP
清华大学出版的事半功倍系列 javascript全部源代码
2007/05/04 Javascript
基于jQuery的日期选择控件
2009/10/27 Javascript
Jquery之美中不足小结
2011/02/16 Javascript
自己实现string的substring方法 人民币小写转大写,数字反转,正则优化
2012/09/02 Javascript
javascript parseInt() 函数的进制转换注意细节
2013/01/08 Javascript
jQuery截取指定长度字符串代码
2014/08/21 Javascript
jQuery中$(function() {});问题详解
2015/08/10 Javascript
基于jQuery Bar Indicator 插件实现进度条展示效果
2015/09/30 Javascript
javascript设置页面背景色及背景图片的方法
2015/12/29 Javascript
node+express制作爬虫教程
2016/11/11 Javascript
JQuery实现列表中复选框全选反选功能封装(推荐)
2016/11/24 Javascript
利用js给datalist或select动态添加option选项的方法
2018/01/25 Javascript
NestJs 静态目录配置详解
2019/03/12 Javascript
ES6 Class中实现私有属性的一些方法总结
2019/07/08 Javascript
layui实现checkbox的目录树tree的例子
2019/09/12 Javascript
Vue通过provide inject实现组件通信
2020/09/03 Javascript
python爬虫入门教程--优雅的HTTP库requests(二)
2017/05/25 Python
详解supervisor使用教程
2017/11/21 Python
python+opencv实现高斯平滑滤波
2020/07/21 Python
Python3.4解释器用法简单示例
2019/03/22 Python
Python datetime和unix时间戳之间相互转换的讲解
2019/04/01 Python
Python实现的插入排序,冒泡排序,快速排序,选择排序算法示例
2019/05/04 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
2019/07/03 Python
pip install python 快速安装模块的教程图解
2019/10/08 Python
520使用Python实现“我爱你”表白
2020/05/20 Python
印尼最大的婴儿用品购物网站:Orami
2017/09/28 全球购物
先进个人事迹材料
2014/01/25 职场文书
食品安全责任书
2014/04/15 职场文书
标准版离职证明书
2014/09/12 职场文书
政风行风评议整改方案
2014/09/15 职场文书
美丽心灵观后感
2015/06/01 职场文书
三国演义读书笔记
2015/06/25 职场文书
pandas中DataFrame检测重复值的实现
2021/05/26 Python