123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- /* http://james.padolsey.com/javascript/special-scroll-events-for-jquery/ */
- (function(){
-
- var special = jQuery.event.special,
- uid1 = "D" + (+new Date()),
- uid2 = "D" + (+new Date() + 1);
-
- special.scrollstart = {
- setup: function() {
-
- var timer,
- handler = function(evt) {
-
- var _self = this,
- _args = arguments;
-
- if (timer) {
- clearTimeout(timer);
- } else {
- evt.type = "scrollstart";
- jQuery.event.dispatch.apply(_self, _args);
- }
-
- timer = setTimeout( function(){
- timer = null;
- }, special.scrollstop.latency);
-
- };
-
- jQuery(this).bind("scroll", handler).data(uid1, handler);
-
- },
- teardown: function(){
- jQuery(this).unbind( "scroll", jQuery(this).data(uid1) );
- }
- };
-
- special.scrollstop = {
- latency: 300,
- setup: function() {
-
- var timer,
- handler = function(evt) {
-
- var _self = this,
- _args = arguments;
-
- if (timer) {
- clearTimeout(timer);
- }
-
- timer = setTimeout( function(){
-
- timer = null;
- evt.type = "scrollstop";
- jQuery.event.dispatch.apply(_self, _args);
-
-
- }, special.scrollstop.latency);
-
- };
-
- jQuery(this).bind("scroll", handler).data(uid2, handler);
-
- },
- teardown: function() {
- jQuery(this).unbind( "scroll", jQuery(this).data(uid2) );
- }
- };
-
- })();
|