Stop Body Scroll

by Luis Valle

HTML

<div>
  <button id="btnFreeze" data-state="false">
    Freeze Scroll
  </button>
</div>

<div id="dvAppend">

</div>

JavaScript

(function () {
	$("#btnFreeze").on("click", function () {
  	if ($(this).attr("data-state") == "false") {
    	$(this).attr("data-state", "true");
      freezeBody();
    } else {
    	$(this).attr("data-state", "false");
      unfreezeBody();
    }
  });

	for (var i=0; i < 8000; i++) {
  	$("#dvAppend").append("<span>dfadf adfasdfasdfasdfa asdfadfasfdasdfasf adfadfasdfasdfaf adfadfasfddfa</span>");
  }
})();

function freezeBody() {
	$("body").on("mousewheel DOMMouseScroll", function (e) {
  	e = e || window.event;
    if (e.preventDefault)
        e.preventDefault();
    e.returnValue = false; 
  });
}

function unfreezeBody() {
	$("body").off("mousewheel DOMMouseScroll");
}

function preventDefault(e) {
  e = e || window.event;
  if (e.preventDefault)
      e.preventDefault();
  e.returnValue = false;  
}

function theMouseWheel(e) {
  preventDefault(e);
}

function disable_scroll() {
  if (document.body.addEventListener) {
      window.addEventListener('DOMMouseScroll', theMouseWheel, false);
  }
  window.onmousewheel = document.onmousewheel = theMouseWheel;
}

function enable_scroll() {
    if (window.removeEventListener) {
        window.removeEventListener('DOMMouseScroll', theMouseWheel, false);
    }
    window.onmousewheel = document.onmousewheel = null;  
}