diff --git a/site/index.html b/site/index.html index 24c1813f5..93623ed7b 100644 --- a/site/index.html +++ b/site/index.html @@ -504,9 +504,11 @@ footer .wrap{padding-block:48px 32px} var reduce = window.matchMedia('(prefers-reduced-motion: reduce)').matches; // nav - var burger=document.getElementById('burger'),links=document.getElementById('links'); - burger.addEventListener('click',function(){var o=links.classList.toggle('open');burger.setAttribute('aria-expanded',o?'true':'false');}); - links.querySelectorAll('a').forEach(function(a){a.addEventListener('click',function(){links.classList.remove('open');burger.setAttribute('aria-expanded','false');});}); + var burger=document.getElementById('burger'),navLinks=document.getElementById('links'); + burger.addEventListener('click',function(){var o=navLinks.classList.toggle('open');burger.setAttribute('aria-expanded',o?'true':'false');}); + navLinks.querySelectorAll('a').forEach(function(a){a.addEventListener('click',function(){navLinks.classList.remove('open');burger.setAttribute('aria-expanded','false');});}); + document.addEventListener('click',function(e){if(navLinks.classList.contains('open')&&!navLinks.contains(e.target)&&!burger.contains(e.target)){navLinks.classList.remove('open');burger.setAttribute('aria-expanded','false');}}); + document.addEventListener('keydown',function(e){if(e.key==='Escape'&&navLinks.classList.contains('open')){navLinks.classList.remove('open');burger.setAttribute('aria-expanded','false');burger.focus();}}); // reveal on scroll var io=new IntersectionObserver(function(es){es.forEach(function(e){if(e.isIntersecting){e.target.classList.add('in');io.unobserve(e.target);}});},{threshold:.12}); diff --git a/site/live.html b/site/live.html index 72327883c..6ee1ec094 100644 --- a/site/live.html +++ b/site/live.html @@ -252,8 +252,9 @@ footer{border-top:1px solid var(--line);padding-block:48px 32px} var dpr=Math.min(2,window.devicePixelRatio||1); // nav - var burger=document.getElementById('burger'),links=document.getElementById('links'); - burger.addEventListener('click',function(){var open=links.classList.toggle('open');burger.setAttribute('aria-expanded',open?'true':'false');}); + var burger=document.getElementById('burger'),navLinks=document.getElementById('links'); + burger.addEventListener('click',function(){var open=navLinks.classList.toggle('open');burger.setAttribute('aria-expanded',open?'true':'false');}); + document.addEventListener('click',function(e){if(navLinks.classList.contains('open')&&!navLinks.contains(e.target)&&!burger.contains(e.target)){navLinks.classList.remove('open');burger.setAttribute('aria-expanded','false');}}); // formatting function $(id){return document.getElementById(id);}