JSFiddle - React, Tailwind, and code Playground

HTML

<body>
    <button id="lock">Lock</button>
    <button id="unlock">UnLock</button>
    <div>
        Lorem ipsum dolor sit amet, ex impedit eligendi assueverit qui, integre euismod per eu. Eu est idque semper debitis, sea ferri audiam percipit cu, cu qui timeam conceptam. Est no maluisset concludaturque, vero omnium forensibus qui eu, liber tation eos ad. Eam ex docendi appareat recteque. Eos accumsan partiendo dissentias cu, alterum impedit fuisset cu vim. Atomorum reformidans theophrastus has an, at habemus definitionem vix.

Ut graeci nostro impedit pro, quo omnis facer voluptatum at. Feugiat partiendo eos eu. Pri ut propriae principes hendrerit, nec ut amet prima eruditi, usu id eruditi lucilius conceptam. Deleniti noluisse adipiscing nam at, vel fabulas facilis oporteat id. Cum wisi quaestio eu, mei nihil dolorum ad. Fastidii voluptua sententiae sit ut, quo ipsum putent ut.

Cu legendos evertitur sit, quot nonumy vim cu. Dicant perfecto eos ut, sea fuisset ponderum an. Ne legere eruditi facilisis pro, luptatum accusata nam no. Nisl modus iriure sea ne. Cu pri justo euripidis, et eam stet dissentiunt, porro dicta admodum ea has. Ei brute tollit vel.

Prima ponderum nec at, usu id virtute conclusionemque. Dico soluta mel ea, nec te veri accusamus consequat. Case congue causae an nam, vero vituperata in eum, ex erroribus salutatus mea. Omnis assentior definitiones pri ea, ius ex nulla viris tation, pro at illum lobortis eloquentiam. Per purto scaevola cu. Affert altera ex his, eum amet quaeque menandri in, nec eu animal recteque accusamus.

Mentitum percipit corrumpit sed ea, mea no quod nullam omnesque. Quidam dolores abhorreant his id. Quando iracundia vituperata his id, mei mundi delectus ne, nusquam voluptaria ex sed. Ei aliquam facilisis duo, pro modo eruditi ei, id vis debet aeque everti. Pri ut nibh sententiae constituam. Albucius dissentias id sed.
        
        Lorem ipsum dolor sit amet, ex impedit eligendi assueverit qui, integre euismod per eu....

CSS

#lock {position: fixed; top: 0; left: 0;}
#unlock {position: fixed; top: 0; right: 0;}

JavaScript

var scrollLock = false;
var scrollMem = {left: 0, top: 0};

$(document).ready(function (){
    $(window).scroll(function(){
        if (scrollLock) {
            window.scrollTo(scrollMem.left, scrollMem.top);
        } else {
            console.log("here we go");
            scrollMem = {
                lelf: self.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft,
                top: self.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
            };
        }
    });
    
    $('#lock').on('click', function (){
        scrollLock = true;
    });
    
    $('#unlock').on('click', function (){
        scrollLock = false;
    });
});