mirror of
				https://github.com/flynx/PortableMag.git
				synced 2025-11-04 05:50:19 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
(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);
 |