Skip to content

Commit

Permalink
Missing smartresize helper
Browse files Browse the repository at this point in the history
  • Loading branch information
christianesperar committed Jul 7, 2016
1 parent 967b6a2 commit c917f07
Showing 1 changed file with 35 additions and 0 deletions.
35 changes: 35 additions & 0 deletions src/js/helpers/smartresize.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
/**
* Resize function without multiple trigger
*
* Usage:
* $(window).smartresize(function(){
* // code here
* });
*/
(function($,sr){
// debouncing function from John Hann
// http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/
var debounce = function (func, threshold, execAsap) {
var timeout;

return function debounced () {
var obj = this, args = arguments;
function delayed () {
if (!execAsap)
func.apply(obj, args);
timeout = null;
}

if (timeout)
clearTimeout(timeout);
else if (execAsap)
func.apply(obj, args);

timeout = setTimeout(delayed, threshold || 100);
};
};

// smartresize
jQuery.fn[sr] = function(fn){ return fn ? this.bind('resize', debounce(fn)) : this.trigger(sr); };

})(jQuery,'smartresize');

0 comments on commit c917f07

Please sign in to comment.