mirror of
				https://github.com/flynx/PortableMag.git
				synced 2025-10-31 03:50:16 +00:00 
			
		
		
		
	
		
			
	
	
		
			59 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			59 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | (function($) { | ||
|  |   var special = $.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'; | ||
|  |                 $.event.handle.apply(_self, _args); | ||
|  |               } | ||
|  | 
 | ||
|  |               timer = setTimeout(function() { | ||
|  |                 timer = null; | ||
|  |               }, special.scrollstop.latency); | ||
|  |           }; | ||
|  | 
 | ||
|  |         $(this).bind('scroll', handler).data(uid1, handler); | ||
|  |       }, | ||
|  |       teardown: function() { | ||
|  |         $(this).unbind('scroll', $(this).data(uid1)); | ||
|  |       } | ||
|  |     }; | ||
|  | 
 | ||
|  |     special.scrollstop = { | ||
|  |       latency: 250, | ||
|  |       setup: function() { | ||
|  |         var timer, | ||
|  |             handler = function(evt) { | ||
|  |               var _self = this, | ||
|  |                   _args = arguments; | ||
|  | 
 | ||
|  |               if (timer) { | ||
|  |                 clearTimeout(timer); | ||
|  |               } | ||
|  | 
 | ||
|  |               timer = setTimeout(function() { | ||
|  |                 timer = null; | ||
|  |                 evt.type = 'scrollstop'; | ||
|  |                 $.event.handle.apply(_self, _args); | ||
|  |               }, special.scrollstop.latency); | ||
|  |             }; | ||
|  | 
 | ||
|  |         $(this).bind('scroll', handler).data(uid2, handler); | ||
|  |       }, | ||
|  |       teardown: function() { | ||
|  |         $(this).unbind('scroll', $(this).data(uid2)); | ||
|  |       } | ||
|  |     }; | ||
|  | 
 | ||
|  | })(jQuery); |