Skip to content

Instantly share code, notes, and snippets.

@saadh393
Created January 7, 2022 09:09
Show Gist options
  • Save saadh393/b464055d17cb27d6df3ad5159d49aa5e to your computer and use it in GitHub Desktop.
Save saadh393/b464055d17cb27d6df3ad5159d49aa5e to your computer and use it in GitHub Desktop.
// Toggle Functionality
// Initializations
const sideNavContainer = document.getElementById('sidenavContainer');
const backdropContainer = document.getElementById('backdropContainer');
const scrollToNone = document.getElementById('scrollToNone');
const autofocusInput = document.getElementById('autofocusInput');
let drawerState = false;
function openNav() {
sideNavContainer.style.width = '44%'; // opens side navbar by 45 percent
backdropContainer.style.display = 'block'; // displays overlay
scrollToNone.classList.add('scrollToNone'); // force stop background scrolling
autofocusInput.focus(); // focusing the input field
drawerState = true;
// Dynamic Width Changing
if (window.innerWidth <= 600) {
sideNavContainer.style.width = '80%';
backdropContainer.style.display = 'block';
scrollToNone.classList.add('scrollToNone');
}
window.matchMedia('(max-width: 600px)').addListener((e) => {
if (drawerState) {
sideNavContainer.style.width = e.matches ? '80%' : '44%';
}
});
}
function closeNav() {
sideNavContainer.style.width = '0'; // closes side navbar by 0
backdropContainer.style.display = 'none'; // hides overlay
scrollToNone.classList.remove('scrollToNone'); // normalize background scrolling
drawerState = false;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment