--- /dev/null
+/*\r
+ Navigation\r
+*/\r
+\r
+var burger = document.querySelector(".navbar-burger");\r
+var menu = document.querySelector("#" + burger.dataset.target);\r
+burger.addEventListener('click', function () {\r
+ burger.classList.toggle('is-active');\r
+ menu.classList.toggle('is-active');\r
+});\r
+\r
+/*\r
+\r
+ Dropdowns\r
+\r
+*/\r
+\r
+// Get all dropdowns on the page that aren't hoverable\r
+const dropdowns = document.querySelectorAll('.dropdown:not(.is-hoverable)');\r
+\r
+if (dropdowns.length > 0) {\r
+ // For each dropdown, add event handler to open on click.\r
+ dropdowns.forEach(function(el) {\r
+ el.addEventListener('click', function(e) {\r
+ closeDropdowns();\r
+ e.stopPropagation();\r
+ el.classList.toggle('is-active');\r
+ });\r
+ });\r
+\r
+ // If user clicks outside dropdown, close it.\r
+ document.addEventListener('click', function(e) {\r
+ closeDropdowns();\r
+ });\r
+}\r
+\r
+/*\r
+ * Close dropdowns by removing the "is-active" class\r
+ */\r
+function closeDropdowns() {\r
+ dropdowns.forEach(function(el) {\r
+ el.classList.remove('is-active');\r
+ });\r
+}\r
+\r
+// Close dropdowns if ESC pressed\r
+document.addEventListener('keydown', function(e) {\r
+ let event = e || window.event;\r
+ if (event.key === 'Esc' || event.key === 'Escape') {\r
+ closeDropdowns();\r
+ }\r
+});
\ No newline at end of file