diff options
Diffstat (limited to 'http/3rdParty/jquery-scrollstop-master/jquery.scrollstop.js')
-rw-r--r-- | http/3rdParty/jquery-scrollstop-master/jquery.scrollstop.js | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/http/3rdParty/jquery-scrollstop-master/jquery.scrollstop.js b/http/3rdParty/jquery-scrollstop-master/jquery.scrollstop.js new file mode 100644 index 0000000..68048b5 --- /dev/null +++ b/http/3rdParty/jquery-scrollstop-master/jquery.scrollstop.js @@ -0,0 +1,78 @@ +/*! + * jQuery Scrollstop Plugin v1.1.0 + * https://github.com/ssorallen/jquery-scrollstop + */ +(function($) { + // $.event.dispatch was undocumented and was deprecated in jQuery 1.7[1]. It + // was replaced by $.event.handle in jQuery 1.9. + // + // Use the first of the available functions to support jQuery <1.8. + // + // [1] https://github.com/jquery/jquery-migrate/blob/master/src/event.js#L25 + var dispatch = $.event.dispatch || $.event.handle; + + var special = $.event.special, + uid1 = 'D' + (+new Date()), + uid2 = 'D' + (+new Date() + 1); + + special.scrollstart = { + setup: function(data) { + var _data = $.extend({ + latency: special.scrollstop.latency + }, data); + + var timer, + handler = function(evt) { + var _self = this, + _args = arguments; + + if (timer) { + clearTimeout(timer); + } else { + evt.type = 'scrollstart'; + dispatch.apply(_self, _args); + } + + timer = setTimeout(function() { + timer = null; + }, _data.latency); + }; + + $(this).bind('scroll', handler).data(uid1, handler); + }, + teardown: function() { + $(this).unbind('scroll', $(this).data(uid1)); + } + }; + + special.scrollstop = { + latency: 250, + setup: function(data) { + var _data = $.extend({ + latency: special.scrollstop.latency + }, data); + + var timer, + handler = function(evt) { + var _self = this, + _args = arguments; + + if (timer) { + clearTimeout(timer); + } + + timer = setTimeout(function() { + timer = null; + evt.type = 'scrollstop'; + dispatch.apply(_self, _args); + }, _data.latency); + }; + + $(this).bind('scroll', handler).data(uid2, handler); + }, + teardown: function() { + $(this).unbind('scroll', $(this).data(uid2)); + } + }; + +})(jQuery); |