February 12, 2018 · Web JS

Scroll lock JavaScript

let lockedScroll = false,
    lastScrollPos = {
        y: 0
    };
let toggleScrollLock = function () {
    if (lockedScroll = !lockedScroll) {
        disableScrolling();
    } else {
        enableScrolling();
    }

    function disableScrolling() {
        lastScrollPos.y = $('body').scrollTop();
        $('html, body').css({
            overflow: 'hidden',
            height: '100%'
        });
        $('body').scrollTop(lastScrollPos.y);
    }

    function enableScrolling() {
        $('html, body').css({
            overflow: 'auto',
            height: 'auto'
        });
        $('body').scrollTop(lastScrollPos.y);
    }
};