disable-body-scroll
Version:
Disable the scrolling of the content of the body when the content of the pop-up window is scrolled
1 lines • 2 kB
JavaScript
require("core-js/modules/es.global-this.js"),function(e,o){if("function"==typeof define&&define.amd)define(["exports"],o);else if("undefined"!=typeof exports)o(exports);else{var t={exports:{}};o(t.exports),e.index=t.exports}}("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:this,(function(e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.directive=e.disabledBodyScroll=void 0;var o=function(e){return e.scrollHeight<=e.scrollTop+e.offsetHeight},t=function(e){return 0===e.scrollTop};function n(e){e.removeEventListener("touchstart",e.$documentTouchStart),e.removeEventListener("mousemove",e.$movefunction),e.removeEventListener("mouseup",e.$upFunction)}var r=function(e,n){var r=n.value,i="disabled"===n.arg?"disabled":"working";if(void 0===document.body.style.overscrollBehavior){var s=0,u=0;e.$movefunction=function(n){n.stopPropagation();var v=f(n),c=v.offsetY-s,a=v.offsetX-u,d=c<0?"moveToTop":"moveToBottom";90==r?d=a>0?"moveToTop":"moveToBottom":-90==r&&(d=a<0?"moveToTop":"moveToBottom");var l=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"moveToTop";return!("moveToBottom"!=n||!t(e))||!("moveToTop"!=n||!o(e))}(e,d);"working"===i&&l&&n.cancelable&&n.preventDefault()},e.$upFunction=function(o){o.stopPropagation(),e.removeEventListener("mousemove",e.$movefunction),e.removeEventListener("mouseup",e.$upFunction)},e.$documentTouchStart=function(o){o.stopPropagation();var t=f(o);s=t.offsetY,u=t.offsetX,e.addEventListener("touchmove",e.$movefunction,!1),e.addEventListener("touchend",e.$upFunction,!1)},e.addEventListener("touchstart",e.$documentTouchStart,!1)}else!function(e,o){e.style.overscrollBehavior="working"==o?"contain":"auto"}(e,i);function f(e){var o={};e.targetTouches&&e.targetTouches[0]?o={offsetX:e.targetTouches[0].pageX,offsetY:e.targetTouches[0].pageY,e:e}:o={offsetX:e.offsetX,offsetY:e.offsetY,e:e};return o}};e.disabledBodyScroll=r;var i={bind:r,beforeMount:r,unbind:n,unmounted:n};e.directive=i}));