commonJS — 全局操作(for Window)
for Window
github: https://github.com/laixiangran/commonJS/blob/master/src/forWindow.js
代码
/*** Created by laixiangran on 2016/1/24* homepage:http://www.cnblogs.com/laixiangran/* for Window*/
(function() {var com = window.COM = window.COM || {};com.$W = {/*** 在window.onload前执行,相当于jq的ready()* 使用domReady.ready()将执行函数加入队列中**/domReady: (function() {// 用于添加要执行的函数var domReady = function() {var fnArr = Array.prototype.slice.call(arguments);// 页面如果加载完毕则直接运行if (domReady.isReady) {fnArr.forEach(function(fn) {fn();});}else {domReady.fns = fnArr;}};// 用于判定页面是否加载完毕domReady.isReady = false;domReady.fns = [];// 执行所有在window.onload之前放入的函数domReady.fireReady = function() {if (!domReady.isReady) {if (!document.body) {return setTimeout(domReady.fireReady, 16);}domReady.isReady = true;if (domReady.fns.length) {domReady.fns.forEach(function(fn) {fn();});}}};// 开始初始化domReady函数,判定页面的加载情况if (document.readyState === "complete") {domReady.fireReady();} else if (-[1,]) {document.addEventListener("DOMContentLoaded", function() {document.removeEventListener("DOMContentLoaded", arguments.callee, false);domReady.fireReady();}, false);} else {// 当页面包含图片时,onreadystatechange事件会触发在window.onload之后,// 换言之,它只能正确地执行于页面不包含二进制资源或非常少或者被缓存时document.attachEvent("onreadystatechange", function() {if (document.readyState == "complete") {document.detachEvent("onreadystatechange", arguments.callee);domReady.fireReady();}});(function(){if (domReady.isReady) {return;}// doScroll存在于所有标签而不管其是否支持滚动条// 这里如果用document.documentElement.doScroll(),我们需要判定其是否位于顶层documentvar node = new Image();try {node.doScroll();node = null; // 防止IE内存泄漏}catch (e) {// javascrpt最短时钟间隔为16ms,这里取其倍数setTimeout(arguments.callee, 64);return;}domReady.fireReady();})();}return domReady;}()),/*** requestAnimationFrame兼容性扩展,两方面工作:* 1、把各浏览器前缀进行统一* 2、在浏览器没有requestAnimationFrame方法时将其指向setTimeout方法* */requestAnimationFrame: (function() {var func = null;var lastTime = 0;var vendors = ["webkit", "moz"];for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {func = window[vendors[x] + "RequestAnimationFrame"];}if (!func) {func = function(callback, element) {var currTime = new Date().getTime();var timeToCall = Math.max(0, 16.7 - (currTime - lastTime));var id = window.setTimeout(function() {callback(currTime + timeToCall);}, timeToCall);lastTime = currTime + timeToCall;return id;};}return func;}()),// 取消AnimationFramecancelAnimationFrame: (function() {var func = null;var vendors = ["webkit", "moz"];for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {// Webkit中此取消方法的名字变了window.cancelAnimationFrame = window[vendors[x] + "CancelAnimationFrame"] || window[vendors[x] + "CancelRequestAnimationFrame"];}if (!func) {func = function(id) {window.clearTimeout(id);};}return func;}())};
}());
参考
http://www.cnblogs.com/cloudgamer/
转载于:https://www.cnblogs.com/laixiangran/p/5174847.html
commonJS — 全局操作(for Window)相关推荐
- 内网穿透工具(永久免费、永不限速、开源)、一键启动、页面操作(支持window,mac),自定义二级域名
java 内网穿透工具(net-penetrate).永久免费.永不限速.开源.一键启动.页面操作(支持window,mac),自定义二级域名 介绍 完全开源,免费使用,不会有人窃取你的信息(可看源码 ...
- commonJS — DOM操作(for DOM)
for DOM github: https://github.com/laixiangran/commonJS/blob/master/src/forDOM.js 代码 /*** Created by ...
- 判断域名来源的操作【window.location.host.indexOf(‘域名关键词‘)】 - 代码篇
文章目录 判断域名来源的操作 - 代码篇 代码如下: 判断域名来源的操作 - 代码篇 代码如下: // 判断域名的操作:如果域名是qblog 或qdownload,则为true: var flagBo ...
- commonJS — 数字操作(for Number)
for Number github: https://github.com/laixiangran/commonJS/blob/master/src/forNumber.js 代码 /*** Crea ...
- JS学习之全局函数与window对象
学习峰哥Js教程自学笔记,峰哥Java学习路线:http://www.java1234.com/javaxuexiluxiantu.html 1.全局函数: 1)概念:全局函数不属于任何一个内置对象. ...
- 2021年大数据Flink(十八):Flink Window操作
目录 Flink-Window操作 为什么需要Window Window的分类 按照time和count分类 按照slide和size分类 总结 Window ...
- Flink window 用法介绍
Sink Flink没有类似spark中foreach方法 让用户进行迭代操作 虽有对外的输出操作 都要利用Sink完成 最后通过类似如下方式完成整个任务最终输出操作 stream.addSink(n ...
- popstate_详解HTML5之pushstate、popstate操作history,无刷新改变当前url
一.认识window.history window.history表示window对象的历史记录,是由用户主动产生,并且接受javascript脚本控制的全局对象.window对象通过history对 ...
- 大数据——Flink Window(窗口)机制
Flink窗口机制 Window(窗口) Tumbling Window(翻滚窗口) Sliding Window(滑动窗口) Sliding Window(滑动窗口)设置Watermark时间 Wi ...
最新文章
- java独立承担,Java使用独立文件服务器
- C#二叉树遍历算法实现浅析
- SSH配置优化和慢的解决方法
- 内核级HOOK的几种实现与应用
- vue中实现双向数据绑定原理,使用了Object.defineproperty()方法,方法简单
- ABAP 动态 SQL
- Java 文件压缩与解压缩
- Cucumber入门之_argument
- QT实现图像处理-傅立叶变换、傅立叶反变换、平滑、锐化与模板匹配
- Redis配置文件常用配置消息解说--版本5.0.9
- php链接本地mysql数据库配置文件_php连接 mysql 数据库如何添加一个公共的配置文件...
- 【转】elasticsearch的查询器query与过滤器filter的区别
- 求教:.Net Framework 3.5 SP1安装失败
- 一位挪威博士的PolarDB资深架构师之路
- 微信发红包的测试用例
- 大理大学 计算机研究生分数线,大理大学2018年研究生复试分数线
- 相对论学习入门资料集
- xposed模块编写教程_太极xposed模块使用教程
- Opencv+ZBar识别条形码、二维码
- 大数据培训:生活中这些场景都用到了大数据
热门文章
- 如何debug函数_如何使用 pdb 来性感 debug 你的 Python 代码?
- 阻止JavaScript事件冒泡到父元素
- eclipse 设置workspace编码格式
- eclipse 面包屑开关 / 查看class再哪个jar中
- python random库下载_python基础 — random库
- oracle查找异常中断的sqlid方法,Oracle查找锁定对象以及强制解除锁定的方法
- 事实表和维度表是怎么造数据_从电商数据指标到电商数据中台
- docker 内部ping不通宿主机_Docker容器数据管理
- java getIV_Java SAP CRM get_children 方法里面参数 iv_as_copy 有什么用? _好机友
- spark-sql执行时报错: