123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- document.addEventListener("DOMContentLoaded", function () {
-
- // Make tables responsive by wrapping them in a div and making them scrollable
- const tables = document.querySelectorAll("table.docutils")
- tables.forEach(function(table){
- table.outerHTML = '<div class="responsive-table__container">' + table.outerHTML + "</div>"
- })
-
- const togglerInput = document.querySelector(".toggler__input")
- const togglerLabel = document.querySelector(".toggler__label")
- const sideMenu = document.querySelector(".menu-wrapper")
- const menuItems = document.querySelectorAll(".menu")
- const doc = document.querySelector(".document")
- const body = document.querySelector("body")
-
- function closeMenu() {
- togglerInput.checked = false
- sideMenu.setAttribute("aria-expanded", "false")
- sideMenu.setAttribute("aria-hidden", "true")
- togglerLabel.setAttribute("aria-pressed", "false")
- body.style.overflow = "visible"
- }
- function openMenu() {
- togglerInput.checked = true
- sideMenu.setAttribute("aria-expanded", "true")
- sideMenu.setAttribute("aria-hidden", "false")
- togglerLabel.setAttribute("aria-pressed", "true")
- body.style.overflow = "hidden"
- }
-
- // Close menu when link on the sideMenu is clicked
- sideMenu.addEventListener("click", function (event) {
- let target = event.target
- if (target.tagName.toLowerCase() !== "a") {
- return
- }
- closeMenu()
- })
- // Add accessibility data when sideMenu is opened/closed
- togglerInput.addEventListener("change", function (_event) {
- togglerInput.checked ? openMenu() : closeMenu()
- })
- // Make sideMenu links tabbable only when visible
- for(let menuItem of menuItems) {
- if(togglerInput.checked) {
- menuItem.setAttribute("tabindex", "0")
- } else {
- menuItem.setAttribute("tabindex", "-1")
- }
- }
- // Close sideMenu when document body is clicked
- doc.addEventListener("click", function () {
- if (togglerInput.checked) {
- closeMenu()
- }
- })
- })
|