PageSourceSearch

https://www.bnf.fr/themes/custom/bnfsi/js/scrollbar/mwheelIntent.js?v=8.9.20

js bnf.fr collected 2026-09-24 07:33:06 UTC 1,748 bytes, 76 lines download raw bytes

1/**
2 * @author trixta
3 * @version 1.2
4 */
5(function($){
6
7var mwheelI = {
8			pos: [-260, -260]
9		},
10	minDif 	= 3,
11	doc 	= document,
12	root 	= doc.documentElement,
13	body 	= doc.body,
14	longDelay, shortDelay
15;
16
17function unsetPos(){
18	if(this === mwheelI.elem){
19		mwheelI.pos = [-260, -260];
20		mwheelI.elem = false;
21		minDif = 3;
22	}
23}
24
25$.event.special.mwheelIntent = {
26	setup: function(){
27		var jElm = $(this).bind('mousewheel', $.event.special.mwheelIntent.handler);
28		if( this !== doc && this !== root && this !== body ){
29			jElm.bind('mouseleave', unsetPos);
30		}
31		jElm = null;
32        return true;
33    },
34	teardown: function(){
35        $(this)
36			.unbind('mousewheel', $.event.special.mwheelIntent.handler)
37			.unbind('mouseleave', unsetPos)
38		;
39        return true;
40    },
41    handler: function(e, d){
42		var pos = [e.clientX, e.clientY];
43		if( this === mwheelI.elem || Math.abs(mwheelI.pos[0] - pos[0]) > minDif || Math.abs(mwheelI.pos[1] - pos[1]) > minDif ){
44            mwheelI.elem = this;
45			mwheelI.pos = pos;
46			minDif = 250;
47			
48			clearTimeout(shortDelay);
49			shortDelay = setTimeout(function(){
50				minDif = 10;
51			}, 200);
52			clearTimeout(longDelay);
53			longDelay = setTimeout(function(){
54				minDif = 3;
55			}, 1500);
56			e = $.extend({}, e, {type: 'mwheelIntent'});
57            return ($.event.dispatch || $.event.handle).apply(this, arguments);
58		}
59    }
60};
61$.fn.extend({
62	mwheelIntent: function(fn) {
63		return fn ? this.bind("mwheelIntent", fn) : this.trigger("mwheelIntent");
64	},
65	
66	unmwheelIntent: function(fn) {
67		return this.unbind("mwheelIntent", fn);
68	}
69});
70
71$(function(){
72	body = doc.body;
73	//assume that document is always scrollable, doesn't hurt if not
74	$(doc).bind('mwheelIntent.mwheelIntentDefault', $.noop);
75});
76})(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.