`
- 浏览:
1309726 次
- 性别:
- 来自:
江苏
-
好处:
1.考虑了resize
2.考虑了页面宽度不足一屏幕
3.考虑了滚动条
http://james.padolsey.com/page/2/
function documentOverlay() {
// @version 0.12
// @author James Padolsey
// @info http://james.padolsey.com/javascript/the-perfect-document-overlay/
// Shortcut to current instance of object:
var instance = this,
// Cached body height:
bodyHeight = (function(){
return getDocDim('Height','min');
})();
// CSS helper function:
function css(el,o) {
for (var i in o) { el.style[i] = o[i]; }
return el;
};
// Document height/width getter:
function getDocDim(prop,m){
m = m || 'max';
return Math[m](
Math[m](document.body["scroll" + prop], document.documentElement["scroll" + prop]),
Math[m](document.body["offset" + prop], document.documentElement["offset" + prop]),
Math[m](document.body["client" + prop], document.documentElement["client" + prop])
);
}
// get window height: (viewport):
function getWinHeight() {
return window.innerHeight ||
(document.compatMode == "CSS1Compat" && document.documentElement.clientHeight || document.body.clientHeight);
}
// Public properties:
// Expose CSS helper, for public usage:
this.css = function(o){
css(instance.element, o);
return instance;
};
// The default duration is infinity:
this.duration = null;
// Creates and styles new div element:
this.element = (function(){
return css(document.createElement('div'),{
width: '100%',
height: getDocDim('Height') + 'px',
position: 'absolute', zIndex: 999,
left: 0, top: 0,
});
})();
// Resize cover when window is resized:
window.onresize = function(){
// No need to do anything if document['body'] is taller than viewport
if(bodyHeight>getWinHeight()) { return; }
// We need to hide it before showing
// it again, due to scrollbar issue.
instance.css({display: 'none'});
setTimeout(function(){
instance.css({
height: getDocDim('Height') + 'px',
display: 'block'
});
}, 10);
};
// Remove the element:
this.remove = function(){
this.element.parentNode && this.element.parentNode.removeChild(instance.element);
};
// Show element:
this.show = function(){};
// Event handling helper:
this.on = function(what,handler){
what.toLowerCase() === 'show' ? (instance.show = handler)
: instance.element['on'+what] = handler;
return instance;
};
// Begin:
this.init = function(duration){
// Overwrite duration if parameter is supplied:
instance.duration = duration || instance.duration;
// Inject overlay element into DOM:
document.getElementsByTagName('body')[0].appendChild(instance.element);
// Run show() (by default, an empty function):
instance.show.call(instance.element,instance);
// If a duration is supplied then remove element after
// the specified amount of time:
instance.duration && setTimeout(function(){instance.remove();}, instance.duration);
// Return instance, for reference:
return instance;
};
}
var Mao = (new documentOverlay()).css({
background: 'black',
opacity: 0.5,
filter: 'alpha(opacity=50)'
}).on('dblclick',function(){
Mao.remove()
}).init();
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
Flask快速入门精品课程-笔记-123.zipFlask快速入门精品课程-笔记-123.zipFlask快速入门精品课程-笔记-123.zipFlask快速入门精品课程-笔记-123.zipFlask快速入门精品课程-笔记-123.zipFlask快速入门精品课程-笔记-123...
冰河整理的全网首个开源的以实战案例为背景的渗透实战笔记,全书共442页,共计37万字(不计空格)。整本书的内容涵盖:Kali基础、渗透工具、木马制作、钓鱼链接生成、爆破密码、内存溢出攻击、web渗透、数据提权、...
HotApp云笔记 - 精品开源demo-基于免费API(源代码+截图)HotApp云笔记 - 精品开源demo-基于免费API(源代码+截图)HotApp云笔记 - 精品开源demo-基于免费API(源代码+截图)HotApp云笔记 - 精品开源demo-基于免费API(源...
概率论与数理统计-手写笔记-期末考试复习概率论与数理统计-手写笔记-期末考试复习概率论与数理统计-手写笔记-期末考试复习概率论与数理统计-手写笔记-期末考试复习概率论与数理统计-手写笔记-期末考试复习概率论与...
《技术人的管理之路》读书笔记 --思维导图 《技术人的管理之路》读书笔记 --思维导图 《技术人的管理之路》读书笔记 --思维导图 《技术人的管理之路》读书笔记 --思维导图 《技术人的管理之路》读书笔记 --思维导图 ...
嵌入式Liunx应用程序开发笔记-代码.zip嵌入式Liunx应用程序开发笔记-代码.zip嵌入式Liunx应用程序开发笔记-代码.zip嵌入式Liunx应用程序开发笔记-代码.zip嵌入式Liunx应用程序开发笔记-代码.zip嵌入式Liunx应用程序...
统计学习方法笔记-基于Python算法实现。统计学习方法笔记-基于Python算法实现 所有代码均可直接运行。统计学习方法笔记-基于Python算法实现。统计学习方法笔记-基于Python算法实现 所有代码均可直接运行。统计学习...
学习笔记HTML-css-JS.zip学习笔记HTML-css-JS.zip学习笔记HTML-css-JS.zip 学习笔记HTML-css-JS.zip学习笔记HTML-css-JS.zip学习笔记HTML-css-JS.zip 学习笔记HTML-css-JS.zip学习笔记HTML-css-JS.zip学习笔记...
Java基础每日复习笔记-JavaSE高级阶段.2020-10-13-211312.edf
通信电子电路(高频-模电PLUS)-手写笔记-期末考试复习通信电子电路(高频-模电PLUS)-手写笔记-期末考试复习通信电子电路(高频-模电PLUS)-手写笔记-期末考试复习通信电子电路(高频-模电PLUS)-手写笔记-期末考试...
JavaScript笔记-个人笔记-X-mind格式
送给急需要短时间内增加词汇的朋友,多多努力,加油!!
python爬虫学习笔记-scrapy框架(1) python scrapy 爬虫 python爬虫学习笔记-scrapy框架(1) python scrapy 爬虫 python爬虫学习笔记-scrapy框架(1) python scrapy 爬虫 python爬虫学习笔记-scrapy框架(1) python ...
根据《Redis笔记-尚硅谷周阳V1.3》整理,脑图、思维导图xmind
js学习笔记-章节学习记录
新版Android开发教程&笔记--基础入门一 新版Android开发教程&笔记--基础入门二 新版Android开发教程&笔记三--环境搭建与解析 新版Android开发教程&笔记四--Dalvik ADB 新版Android开发教程+笔记五--模拟器、应用1、2...
2024届求职-C++后端-学习笔记-操作系统、计算机网络、C++语言+算法 2024届求职-C++后端-学习笔记-操作系统、计算机网络、C++语言+算法 2024届求职-C++后端-学习笔记-操作系统、计算机网络、C++语言+算法 2024届求职-...
学习任务笔记-入门大模型(含源码+项目说明介绍).zip学习任务笔记-入门大模型(含源码+项目说明介绍).zip学习任务笔记-入门大模型(含源码+项目说明介绍).zip学习任务笔记-入门大模型(含源码+项目说明介绍).zip学习任务...
Linux课程学习笔记 -韩顺平 包含c/c++/python/java 专项 面试题 PDF PPT 笔记 面试题 (百度网盘链接 永久有效) 自学,做笔记,复习可用