Files
NodeBB/public/src/modules/scrollStop.js
renovate[bot] 64b9dabff8 chore(deps): update dependency eslint-config-airbnb-base to v13 (#6599)
* chore(deps): update dependency eslint-config-airbnb-base to v13

* chore: #6599, linting 😬
2018-11-07 15:53:14 -05:00

32 lines
823 B
JavaScript

'use strict';
/*
The point of this library is to enhance(tm) a textarea so that if scrolled,
you can only scroll to the top of it and the event doesn't bubble up to
the document... because it does... and it's annoying at times.
While I'm here, might I say this is a solved issue on Linux?
*/
define('scrollStop', function () {
var Module = {};
Module.apply = function (element) {
$(element).on('mousewheel', function (e) {
var scrollTop = this.scrollTop;
var scrollHeight = this.scrollHeight;
var elementHeight = Math.round(this.getBoundingClientRect().height);
if (
(e.originalEvent.deltaY < 0 && scrollTop === 0) // scroll up
|| (e.originalEvent.deltaY > 0 && (elementHeight + scrollTop) >= scrollHeight) // scroll down
) {
return false;
}
});
};
return Module;
});