diff --git a/.editorconfig b/.editorconfig
index 0fe2cbbba..1114dd077 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -4,7 +4,8 @@
root = true
[*]
-indent_style = tab
+indent_style = space
+indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
diff --git a/.github/workflows/browserstack.yml b/.github/workflows/browserstack.yml
index 8dbce4928..ad81b658a 100644
--- a/.github/workflows/browserstack.yml
+++ b/.github/workflows/browserstack.yml
@@ -61,6 +61,6 @@ jobs:
- name: Run tests
run: |
- npm run test:unit -- -v -c jtr-isolate.yml \
+ npm run test:unit -- -v --retries 3 --hard-retries 1 \
--browserstack "${{ matrix.BROWSER }}" \
--run-id ${{ github.run_id }}
diff --git a/ChangeLog.md b/ChangeLog.md
index 76752a1a0..6be2717d1 100644
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,13 @@
# Mouse Wheel ChangeLog
+## 3.2.0
+
+* Use `.on()`/`.off()` for event binding where available
+* Don't clobber mouse offset properties if we don't adjust them (#165)
+* Remove moot `version` property from bower.json (#140)
+* Remove the executable bit from the library (#176)
+* Add jtr-based tests in GitHub Actions, migrate to ESLint flat config (#247)
+
## 3.1.13
* Update copyright notice and license to remove years
diff --git a/jquery.mousewheel.js b/jquery.mousewheel.js
index 1ee0e326a..a1f5098de 100644
--- a/jquery.mousewheel.js
+++ b/jquery.mousewheel.js
@@ -22,11 +22,12 @@
} )( function( $ ) {
"use strict";
- var toFix = [ "wheel", "mousewheel", "DOMMouseScroll", "MozMousePixelScroll" ],
+ var nullLowestDeltaTimeout, lowestDelta,
+ modernEvents = !!$.fn.on,
+ toFix = [ "wheel", "mousewheel", "DOMMouseScroll", "MozMousePixelScroll" ],
toBind = ( "onwheel" in window.document || window.document.documentMode >= 9 ) ?
[ "wheel" ] : [ "mousewheel", "DomMouseScroll", "MozMousePixelScroll" ],
- slice = Array.prototype.slice,
- nullLowestDeltaTimeout, lowestDelta;
+ slice = Array.prototype.slice;
if ( $.event.fixHooks ) {
for ( var i = toFix.length; i; ) {
@@ -87,11 +88,13 @@
$.fn.extend( {
mousewheel: function( fn ) {
- return fn ? this.on( "mousewheel", fn ) : this.trigger( "mousewheel" );
+ return fn ?
+ this[ modernEvents ? "on" : "bind" ]( "mousewheel", fn ) :
+ this.trigger( "mousewheel" );
},
unmousewheel: function( fn ) {
- return this.off( "mousewheel", fn );
+ return this[ modernEvents ? "off" : "unbind" ]( "mousewheel", fn );
}
} );
@@ -126,7 +129,7 @@
deltaY = 0;
}
- // Set delta to be deltaY or deltaX if deltaY is 0 for backwards compatabilitiy
+ // Set delta to be deltaY or deltaX if deltaY is 0 for backwards compatability
delta = deltaY === 0 ? deltaX : deltaY;
// New school wheel delta (wheel event)
@@ -209,25 +212,23 @@
// Add event and delta to the front of the arguments
args.unshift( event, delta, deltaX, deltaY );
- // Clearout lowestDelta after sometime to better
+ // Clear out lowestDelta after sometime to better
// handle multiple device types that give different
// a different lowestDelta
// Ex: trackpad = 3 and mouse wheel = 120
if ( nullLowestDeltaTimeout ) {
window.clearTimeout( nullLowestDeltaTimeout );
}
- nullLowestDeltaTimeout = window.setTimeout( nullLowestDelta, 200 );
+ nullLowestDeltaTimeout = window.setTimeout( function() {
+ lowestDelta = null;
+ }, 200 );
return ( $.event.dispatch || $.event.handle ).apply( this, args );
}
- function nullLowestDelta() {
- lowestDelta = null;
- }
-
function shouldAdjustOldDeltas( orgEvent, absDelta ) {
- // If this is an older event and the delta is divisable by 120,
+ // If this is an older event and the delta is divisible by 120,
// then we are assuming that the browser is treating this as an
// older mouse wheel event and that we should divide the deltas
// by 40 to try and get a more usable deltaFactor.
diff --git a/jquery.mousewheel.min.js b/jquery.mousewheel.min.js
index c662bd46c..a27391f27 100644
--- a/jquery.mousewheel.min.js
+++ b/jquery.mousewheel.min.js
@@ -1,4 +1,4 @@
!/*!
* jQuery Mousewheel 3.1.13
* Copyright OpenJS Foundation and other contributors
- */function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?module.exports=e:e(jQuery)}(function(e){"use strict";var t,i,n=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],o="onwheel"in window.document||window.document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],l=Array.prototype.slice;if(e.event.fixHooks)for(var s=n.length;s;)e.event.fixHooks[n[--s]]=e.event.mouseHooks;var a=e.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var t=o.length;t;)this.addEventListener(o[--t],h,!1);else this.onmousewheel=h;e.data(this,"mousewheel-line-height",a.getLineHeight(this)),e.data(this,"mousewheel-page-height",a.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var t=o.length;t;)this.removeEventListener(o[--t],h,!1);else this.onmousewheel=null;e.removeData(this,"mousewheel-line-height"),e.removeData(this,"mousewheel-page-height")},getLineHeight:function(t){var i=e(t),n=i["offsetParent"in e.fn?"offsetParent":"parent"]();return n.length||(n=e("body")),parseInt(n.css("fontSize"),10)||parseInt(i.css("fontSize"),10)||16},getPageHeight:function(t){return e(t).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};function h(n){var o=n||window.event,s=l.call(arguments,1),h=0,f=0,d=0,w=0;if((n=e.event.fix(o)).type="mousewheel","detail"in o&&(d=-1*o.detail),"wheelDelta"in o&&(d=o.wheelDelta),"wheelDeltaY"in o&&(d=o.wheelDeltaY),"wheelDeltaX"in o&&(f=-1*o.wheelDeltaX),"axis"in o&&o.axis===o.HORIZONTAL_AXIS&&(f=-1*d,d=0),h=0===d?f:d,"deltaY"in o&&(h=d=-1*o.deltaY),"deltaX"in o&&(f=o.deltaX,0===d&&(h=-1*f)),0!==d||0!==f){if(1===o.deltaMode){var c=e.data(this,"mousewheel-line-height");h*=c,d*=c,f*=c}else if(2===o.deltaMode){var m=e.data(this,"mousewheel-page-height");h*=m,d*=m,f*=m}if(w=Math.max(Math.abs(d),Math.abs(f)),(!i||w=1?"floor":"ceil"](h/i),f=Math[f>=1?"floor":"ceil"](f/i),d=Math[d>=1?"floor":"ceil"](d/i),a.settings.normalizeOffset&&this.getBoundingClientRect){var g=this.getBoundingClientRect();n.offsetX=n.clientX-g.left,n.offsetY=n.clientY-g.top}return n.deltaX=f,n.deltaY=d,n.deltaFactor=i,n.deltaMode=0,s.unshift(n,h,f,d),t&&window.clearTimeout(t),t=window.setTimeout(r,200),(e.event.dispatch||e.event.handle).apply(this,s)}}function r(){i=null}function u(e,t){return a.settings.adjustOldDeltas&&"mousewheel"===e.type&&t%120==0}e.fn.extend({mousewheel:function(e){return e?this.on("mousewheel",e):this.trigger("mousewheel")},unmousewheel:function(e){return this.off("mousewheel",e)}})});
\ No newline at end of file
+ */function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?module.exports=e:e(jQuery)}(function(e){"use strict";var t,n,i=!!e.fn.on,o=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],l="onwheel"in window.document||window.document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],s=Array.prototype.slice;if(e.event.fixHooks)for(var a=o.length;a;)e.event.fixHooks[o[--a]]=e.event.mouseHooks;var h=e.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var t=l.length;t;)this.addEventListener(l[--t],r,!1);else this.onmousewheel=r;e.data(this,"mousewheel-line-height",h.getLineHeight(this)),e.data(this,"mousewheel-page-height",h.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var t=l.length;t;)this.removeEventListener(l[--t],r,!1);else this.onmousewheel=null;e.removeData(this,"mousewheel-line-height"),e.removeData(this,"mousewheel-page-height")},getLineHeight:function(t){var n=e(t),i=n["offsetParent"in e.fn?"offsetParent":"parent"]();return i.length||(i=e("body")),parseInt(i.css("fontSize"),10)||parseInt(n.css("fontSize"),10)||16},getPageHeight:function(t){return e(t).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};function r(i){var o=i||window.event,l=s.call(arguments,1),a=0,r=0,d=0,w=0;if((i=e.event.fix(o)).type="mousewheel","detail"in o&&(d=-1*o.detail),"wheelDelta"in o&&(d=o.wheelDelta),"wheelDeltaY"in o&&(d=o.wheelDeltaY),"wheelDeltaX"in o&&(r=-1*o.wheelDeltaX),"axis"in o&&o.axis===o.HORIZONTAL_AXIS&&(r=-1*d,d=0),a=0===d?r:d,"deltaY"in o&&(a=d=-1*o.deltaY),"deltaX"in o&&(r=o.deltaX,0===d&&(a=-1*r)),0!==d||0!==r){if(1===o.deltaMode){var c=e.data(this,"mousewheel-line-height");a*=c,d*=c,r*=c}else if(2===o.deltaMode){var m=e.data(this,"mousewheel-page-height");a*=m,d*=m,r*=m}if(w=Math.max(Math.abs(d),Math.abs(r)),(!n||w wheelme wheelme