Вместо этого вы можете попробовать анимировать поля.
const aside = document.querySelector('aside');
document.querySelector('button').addEventListener('click', () => {
aside.classList.toggle('open');
})
* {
box-sizing: border-box;
}
section {
display: flex;
height: 100vh;
overflow:hidden;
}
main {
overflow-y: auto;
flex: 1;
background: red;
transition: transform 0.3s cubic-bezier(0, 0, 0.3, 1);
}
aside {
background: hotpink;
width:250px;
padding: 10px;
margin-left:-250px;
transition: margin 0.3s cubic-bezier(0, 0, 0.3, 1);
}
aside.open {
margin-left:0px;
}
<section>
<aside>
Sidebar content
</aside>
<main>
<button>Toggle</button>
<p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Odio illum sed neque molestias nihil deserunt facilis voluptatibus recusandae vero necessitatibus quas id consectetur similique, architecto voluptates officia obcaecati, corporis dolor?
</p>
</main>
</section>