const overflow = []; const nav = document.querySelector('nav'); const more = nav.children[nav.children.length - 1]; let navToggled = false; function showMore() { more.text = more.text.replace("Less", "More"); const itemHeight = nav.children[0].offsetHeight; if (!nav.contains(more)) { nav.appendChild(more); } while (overflow.length > 0 && nav.offsetHeight <= itemHeight) { nav.insertBefore(overflow.pop(), more); } while (nav.children.length > 0 && nav.offsetHeight > itemHeight) { overflow.push(nav.removeChild(nav.children[nav.children.length - 2])); } if (overflow.length == 0) { nav.removeChild(more); } navToggled = false; } function showAll() { while (overflow.length > 0) { nav.insertBefore(overflow.pop(), more); } } window.addEventListener('resize', showMore); document.addEventListener('DOMContentLoaded', showMore); function toggleNav() { if (navToggled = !navToggled) { more.text = more.text.replace("More", "Less"); showAll(); } else { more.text = more.text.replace("Less", "More"); showMore(); } } more.addEventListener("click", toggleNav);