You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
825 B
JavaScript
32 lines
825 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 () {
|
|
const Module = {};
|
|
|
|
Module.apply = function (element) {
|
|
$(element).on('mousewheel', function (e) {
|
|
const scrollTop = this.scrollTop;
|
|
const scrollHeight = this.scrollHeight;
|
|
const 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;
|
|
});
|