Sha256: f4474df685db340fab9685714805edd47127aa791f77beafe0bfa9fe454b0df7

Contents?: true

Size: 1.71 KB

Versions: 71

Compression:

Stored size: 1.71 KB

Contents

/**
 * @author trixta
 * @version 1.2
 */
(function($){

var mwheelI = {
			pos: [-260, -260]
		},
	minDif 	= 3,
	doc 	= document,
	root 	= doc.documentElement,
	body 	= doc.body,
	longDelay, shortDelay
;

function unsetPos(){
	if(this === mwheelI.elem){
		mwheelI.pos = [-260, -260];
		mwheelI.elem = false;
		minDif = 3;
	}
}

$.event.special.mwheelIntent = {
	setup: function(){
		var jElm = $(this).bind('mousewheel', $.event.special.mwheelIntent.handler);
		if( this !== doc && this !== root && this !== body ){
			jElm.bind('mouseleave', unsetPos);
		}
		jElm = null;
        return true;
    },
	teardown: function(){
        $(this)
			.unbind('mousewheel', $.event.special.mwheelIntent.handler)
			.unbind('mouseleave', unsetPos)
		;
        return true;
    },
    handler: function(e, d){
		var pos = [e.clientX, e.clientY];
		if( this === mwheelI.elem || Math.abs(mwheelI.pos[0] - pos[0]) > minDif || Math.abs(mwheelI.pos[1] - pos[1]) > minDif ){
            mwheelI.elem = this;
			mwheelI.pos = pos;
			minDif = 250;
			
			clearTimeout(shortDelay);
			shortDelay = setTimeout(function(){
				minDif = 10;
			}, 200);
			clearTimeout(longDelay);
			longDelay = setTimeout(function(){
				minDif = 3;
			}, 1500);
			e = $.extend({}, e, {type: 'mwheelIntent'});
            return ($.event.dispatch || $.event.handle).apply(this, arguments);
		}
    }
};
$.fn.extend({
	mwheelIntent: function(fn) {
		return fn ? this.bind("mwheelIntent", fn) : this.trigger("mwheelIntent");
	},
	
	unmwheelIntent: function(fn) {
		return this.unbind("mwheelIntent", fn);
	}
});

$(function(){
	body = doc.body;
	//assume that document is always scrollable, doesn't hurt if not
	$(doc).bind('mwheelIntent.mwheelIntentDefault', $.noop);
});
})(jQuery);

Version data entries

71 entries across 71 versions & 1 rubygems

Version Path
roda-component-0.1.73 test/dummy/public/bower/jScrollPane/script/mwheelIntent.js
roda-component-0.1.72 test/dummy/public/bower/jScrollPane/script/mwheelIntent.js
roda-component-0.1.71 test/dummy/public/bower/jScrollPane/script/mwheelIntent.js
roda-component-0.1.70 test/dummy/public/bower/jScrollPane/script/mwheelIntent.js
roda-component-0.1.69 test/dummy/public/bower/jScrollPane/script/mwheelIntent.js
roda-component-0.1.68 test/dummy/public/bower/jScrollPane/script/mwheelIntent.js
roda-component-0.1.67 test/dummy/public/bower/jScrollPane/script/mwheelIntent.js
roda-component-0.1.66 test/dummy/public/bower/jScrollPane/script/mwheelIntent.js
roda-component-0.1.65 test/dummy/public/bower/jScrollPane/script/mwheelIntent.js
roda-component-0.1.64 test/dummy/public/bower/jScrollPane/script/mwheelIntent.js
roda-component-0.1.63 test/dummy/public/bower/jScrollPane/script/mwheelIntent.js
roda-component-0.1.62 test/dummy/public/bower/jScrollPane/script/mwheelIntent.js
roda-component-0.1.61 test/dummy/public/bower/jScrollPane/script/mwheelIntent.js
roda-component-0.1.60 test/dummy/public/bower/jScrollPane/script/mwheelIntent.js
roda-component-0.1.59 test/dummy/public/bower/jScrollPane/script/mwheelIntent.js
roda-component-0.1.58 test/dummy/public/bower/jScrollPane/script/mwheelIntent.js
roda-component-0.1.57 test/dummy/public/bower/jScrollPane/script/mwheelIntent.js
roda-component-0.1.56 test/dummy/public/bower/jScrollPane/script/mwheelIntent.js
roda-component-0.1.55 test/dummy/public/bower/jScrollPane/script/mwheelIntent.js
roda-component-0.1.54 test/dummy/public/bower/jScrollPane/script/mwheelIntent.js