Share via


Updated JQuery ResizeComplete method

I made 2 slight changes and I think it works pretty well now.  I now detect if the browser is Firefox and use the regular resize event since its resize behaves like a resizeComplete.  I also modified the timeout a bit since I think 100 ms might be too small.

Here is the updated version:

    1: jQuery.fn.resizeComplete = function(callback)
    2: {
    3:  
    4:   var element = this;
    5:   var height = element.height();
    6:   var width = element.width();
    7:   var monitoring = false;
    8:   var timer;
    9:   
   10:   function monitorResizing()
   11:   {
   12:     monitoring = true;
   13:     
   14:     var newHeight = element.height();
   15:     var newWidth = element.width();
   16:     
   17:     if(newHeight != height || newWidth != width)
   18:     {
   19:       height = newHeight;
   20:       width = newWidth;
   21:       timer = setTimeout(function() { monitorResizing() },200);
   22:     }
   23:     else
   24:     {
   25:       monitoring = false;
   26:       clearTimeout(timer);
   27:       callback();
   28:     }
   29:   }
   30:   
   31:   function onResize()
   32:   {
   33:     if(monitoring) return;
   34:     monitorResizing();
   35:   }
   36:   
   37:   if($.browser.mozilla)
   38:   {
   39:     element.resize(callback);
   40:   }
   41:   else
   42:   {
   43:     element.resize(onResize);
   44:   }
   45:   
   46:   
   47: }

Comments

  • Anonymous
    January 03, 2009
    You've been kicked (a good thing) - Trackback from DotNetKicks.com