JSFiddle - React, Tailwind, and code Playground

HTML

<body>
  <button id='btn'>Toggle Modal</button>
  <div class='modalWrap'>
    <div class="modal"></div>  
  </div>
  <div class="content"></div>
</body>

CSS

body {
  background: blue;
}

button{
	z-index: 2;
	position: absolute;
	top: 2px;
	left: 2px;
}

.content {
  background: red;
  height: 3000px;
}

.modalWrap{
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  display: none;
  overflow: auto;
  z-index: 1;
  padding: 50px;
  box-sizing: border-box;
  background-color: rgba(0,0,0,0.4); 
}

.modal {
  background: yellow;
  position: relative;
  height: 2300px;
  top: 5px;
  width: 80%;
  margin: 0 auto;
}

JavaScript

let modalIsOpen = false;
let btn = document.querySelector('#btn');
let modalWrap = document.querySelector('.modalWrap');
let content = document.querySelector('body');


btn.addEventListener('click', ()=>{
  if(modalIsOpen){
    modalWrap.style.display = 'flex';
    content.style.overflow = 'hidden';
  } else {
    modalWrap.style.display = 'none';
    content.style.overflow = 'auto';
  }
    modalIsOpen = !modalIsOpen;
})