Skip to content

Commit 8413b22

Browse files
authored
Fix offcanvas menu open bug (#1116)
1 parent 1a8b9db commit 8413b22

File tree

1 file changed

+10
-15
lines changed

1 file changed

+10
-15
lines changed

js/common.js

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -465,8 +465,8 @@ $(document).ready(function () {
465465
offcanvasElement.querySelectorAll("input, button, a");
466466
const backdropElement = document.getElementById("navbar__backdrop");
467467

468-
const documentWidth = document.documentElement.clientWidth
469-
const scrollbarWidth = Math.abs(window.innerWidth - documentWidth)
468+
const documentWidth = document.documentElement.clientWidth;
469+
const scrollbarWidth = Math.abs(window.innerWidth - documentWidth);
470470

471471
const offcanvasFocusTrapHandler = (event) => {
472472
if (event.key != "Tab") {
@@ -499,8 +499,8 @@ $(document).ready(function () {
499499
// nav from being pushed off screen when the page has horizontal scroll,
500500
// like downloads.php has.
501501
document.documentElement.style.overflow = "hidden";
502-
document.body.style.paddingRight = `${scrollbarWidth}px`
503-
offcanvasSelectables[0].focus();
502+
document.body.style.paddingRight = `${scrollbarWidth}px`;
503+
offcanvasElement.querySelector(".navbar__link").focus();
504504
document.addEventListener("keydown", offcanvasFocusTrapHandler);
505505
};
506506

@@ -515,35 +515,30 @@ $(document).ready(function () {
515515
() => {
516516
document.body.style.overflow = "auto";
517517
document.documentElement.style.overflow = "auto";
518-
document.body.style.paddingRight = '0px'
518+
document.body.style.paddingRight = "0px";
519519
offcanvasElement.style.removeProperty("visibility");
520520
},
521521
{ once: true },
522522
);
523523
};
524524

525525
const closeOffCanvasByClickOutside = (event) => {
526-
if (
527-
!offcanvasElement.contains(event.target) &&
528-
!menuButton.contains(event.target)
529-
) {
530-
closeOffcanvasNav()
526+
if (event.target === backdropElement) {
527+
closeOffcanvasNav();
531528
}
532529
};
533530

534-
document
535-
.getElementById("navbar__menu-link")
536-
.setAttribute("hidden", "true");
531+
document.getElementById("navbar__menu-link").setAttribute("hidden", "true");
537532

538-
const menuButton = document.getElementById("navbar__menu-button")
533+
const menuButton = document.getElementById("navbar__menu-button");
539534
menuButton.removeAttribute("hidden");
540535
menuButton.addEventListener("click", openOffcanvasNav);
541536

542537
document
543538
.getElementById("navbar__close-button")
544539
.addEventListener("click", closeOffcanvasNav);
545540

546-
document.addEventListener('click', closeOffCanvasByClickOutside);
541+
backdropElement.addEventListener("click", closeOffCanvasByClickOutside);
547542

548543
/*}}}*/
549544

0 commit comments

Comments
 (0)