jquery.resize-min.js 2.0 KB

1234
  1. (function(a){a.windowResize=function(b,f){this.settings=a.extend(!0,{},a.windowResize.defaults,f);this.element=b;this.init()};a.extend(a.windowResize,{window_height:0,window_width:0,timer:0,evt:null,defaults:{timeout:0,callback:null,diff_height:!1,step_height:!1,diff_width:!1,step_width:!1,type:"both"},prototype:{init:function(){if(null!=this.settings.callback){"both"!=this.settings.type&&("width"!=this.settings.type&&"height"!=this.settings.type)&&(this.settings.type="both");var b=a(window);this.window_height=
  2. b.height();this.window_width=b.width();b.resize(a.proxy(this,"handleResize"))}},handleResize:function(b){this.evt=b;this.isResized()&&(!1!=this.settings.timeout&&!isNaN(this.settings.timeout)?this.delayEvent():this.sendEvent())},isResized:function(){if(a.browser.msie&&9>parseInt(a.browser.version,10)||!1!=this.settings.diff_height||!1!=this.settings.diff_width||!1!=this.settings.step_height||!1!=this.settings.step_width||"both"!=this.settings.type){var b=a(window).height(),f=this.checkSize(b,this.settings.diff_height,
  3. this.settings.step_height,this.window_height),c=a(window).width(),d=this.checkSize(c,this.settings.diff_width,this.settings.step_width,this.window_width);return"both"==this.settings.type&&(f||d)||"height"==this.settings.type&&f||"width"==this.settings.type&&d?(this.window_height=b,this.window_width=c,!0):!1}return!0},sendEvent:function(){this.settings.callback.apply(this,[this.evt])},checkSize:function(b,a,c,d){return!a&&!c&&b!=d||a&&(parseInt(a)<parseInt(d-b)||-1*parseInt(a)>parseInt(d-b))||"object"==
  4. typeof c&&this.inStep(b,d,c)},delayEvent:function(){clearTimeout(this.timer);this.timer=setTimeout(a.proxy(this,"sendEvent"),parseInt(this.settings.timeout))},inStep:function(b,a,c){for(var d=c.length,e=0;e<d;e++)if(c[e]==b||c[e]==a||c[e]<b&&c[e]>a||c[e]>b&&c[e]<a)return!0;return!1}}});a.fn.windowResize=function(b){return this.each(function(){void 0==a(this).data("windowResize")&&(this==window?a(this).data("windowResize",new a.windowResize(this,b)):(void 0)(b.callback)||a(this).resize(b.callback))})}})(jQuery);