Efficient callback management for window.onresize
(function(window){ | |
window.watchResize = function(callback) | |
{ | |
var resizing; | |
callback.size = 0; | |
function done() | |
{ | |
var curr_size = window.innerWidth; | |
clearTimeout( resizing ); | |
resizing = null; | |
// only run on a true resize | |
if ( callback.size != curr_size ) | |
{ | |
callback(); | |
callback.size = curr_size; | |
} | |
} | |
window.addEventListener('resize', function(){ | |
if ( resizing ) | |
{ | |
clearTimeout( resizing ); | |
resizing = null; | |
} | |
resizing = setTimeout( done, 50 ); | |
}); | |
// init | |
callback(); | |
}; | |
}(window)); |
(function(a){a.watchResize=function(d){var c;d.size=0;function b(){var e=a.innerWidth;clearTimeout(c);c=null;if(d.size!=e){d();d.size=e}}a.addEventListener("resize",function(){if(c){clearTimeout(c);c=null}c=setTimeout(b,50)});d()}}(window)); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment