同时添加多个窗口改变大小事件
2014-04-04 00:00
239 查看
摘要: JQuery自带的resize函数一次只能传入一个参数,感觉不是很好用。
使用方法:
//判断数组是否包含值
//窗口改变大小事件
//需要Array.prototype.contains的支持
//在添加窗口改变大小事件的同时,如果实参t为true,则立即执行该函数
//否则只在窗口变大大小时才执行函数
//如果该函数被添加过,则不会再次添加,即使实参t为true,也不执行该函数
//如果添加时,第一个为数组,执行顺序按照数组序列执行
//实参n为第几执行
使用方法:
_resize.add(fn,number,true) //添加一个函数,并立即执行; _resize.add([fn,fn,fn],number,true) //添加多个函数,并立即执行。 _resize.close() //移除窗口改变大小事件 _resize.open() //添加窗口改变大小事件,并立即执行
//判断数组是否包含值
Array.prototype.contains = function(v){ if(this.length == 0) return false; for(var i = 0; i < this.length; i++){ if(this[i] !== v) return false; } return true; }
//窗口改变大小事件
//需要Array.prototype.contains的支持
//在添加窗口改变大小事件的同时,如果实参t为true,则立即执行该函数
//否则只在窗口变大大小时才执行函数
//如果该函数被添加过,则不会再次添加,即使实参t为true,也不执行该函数
//如果添加时,第一个为数组,执行顺序按照数组序列执行
//实参n为第几执行
var _resize = { cache : [], add : function(f,n,t){ var a = this.cache; if(f instanceof Array){ for (var i = 0; i < f.length; i++) { if(!(f[i] instanceof Function)){ console.error("_resize.add(): 这里的参数类型应该为function"); continue; } if (!a.contains(f[i])) { if(t) f[i](); this.cache[n++] = f[i]; } } }else{ if(!(f instanceof Function)){ console.error("_resize.add(): 这里的参数类型应该为function"); return; } if(!a.contains(f)){ if(t) f(); this.cache = f; } } }, colse : function(){ window.onresize = null; }, open : function(){ window.onresize = function(){ for(var i = 0; i < _resize.cache.length; i++){ if(i in _resize.cache){ _resize.cache[i](); } } }; window.onresize(); } }
相关文章推荐
- vc++ 单文档程序添加窗口移动事件(不是大小改变),以实现子窗口的伴随移动
- 浏览器窗口加载和大小改变事件示例
- js实现浏览器窗口大小被改变时触发事件的方法
- 浏览器窗口加载和大小改变事件示例
- 浏览器窗口加载和大小改变事件
- 窗口大小改变绑定resize事件
- js—当浏览器窗口大小改变时事件
- 窗口大小改变触发Event.RESIZE事件
- jquery窗口大小改变事件
- js实现浏览器窗口大小被改变时触发事件的方法
- QT窗口尺寸,窗口大小和大小改变引起的事件 QResizeEvent。
- js浏览器窗口大小改变时事件
- 忆龙2009:响应窗口Resize事件改变窗口大小时为何出错
- window.onresize(当你改变窗口大小的时候会触发这个事件)
- 当浏览器窗口大小改变时事件
- 忆龙2009:响应窗口Resize事件改变窗口大小时为何出错
- 窗口大小改变事件handler
- 窗口大小改变事件
- 7.1在窗口(宽300,高200)中添加一个面板,面板的背景色为绿色,窗口在屏幕中央,不允许改变其大小,关闭窗口时程序结束运行
- 除了创建时指定窗口位置之外,还有3种移动窗口位置的办法(移动的同时往往可以改变窗口大小)(SetWindowPos最有用,它有许多标志位)