1// JavaScript Document 2 3document.addEventListener("DOMContentLoaded", function() { 4 const hamburgerContent = document.getElementById("hamburgerContent"); 5 const hamburgerMenu = document.getElementById("hamburgerMenu"); 6 const body = document.body; // bodyè¦ç´ ãåå¾ 7 let closeBtn; 8 9 // ãã³ãã¼ã¬ã¼ã¡ãã¥ã¼ã³ã³ãã³ããæ¿å ¥ 10 if (hamburgerContent) { 11 hamburgerContent.innerHTML = sidebarContent; 12 initializeHumburgerAccordion(); // ãã³ãã¼ã¬ã¼ã¡ãã¥ã¼ã®ã¢ã³ã¼ãã£ãªã³ãåæå 13 } 14 15 // ãã³ãã¼ã¬ã¼ã¡ãã¥ã¼ã®åä½ 16 hamburgerMenu.addEventListener("click", function() { 17 hamburgerContent.style.display = "block"; // ã¡ãã¥ã¼ã表示 18 body.classList.add("no-scroll"); // ã¹ã¯ãã¼ã«ãç¡å¹ã«ãã 19 setTimeout(function() { 20 hamburgerContent.classList.add("visible"); // ãã§ã¼ãã¤ã³ã®ã¢ãã¡ã¼ã·ã§ã³ãå®è¡ 21 closeBtn = document.getElementById("closeHamburgerBtn"); // éãããã¿ã³ãååå¾ 22 setupCloseButton(); // éãããã¿ã³ã®åä½ãè¨å® 23 }, 10); // å¾®å°ãªé å»¶ã追å ãã¦ã¢ãã¡ã¼ã·ã§ã³ã確å®ã«å®è¡ãããããã« 24 }); 25 26 // ã³ã³ãã³ãå¤ãã¯ãªãã¯ããã¨ãã«ã¡ãã¥ã¼ãéãã 27 document.addEventListener("click", function(event) { 28 // ãã³ãã¼ã¬ã¼ã¡ãã¥ã¼ã®ã³ã³ãã³ãé¨åãã¯ãªãã¯ãã¦ããªãå ´å 29 if (!hamburgerContent.contains(event.target) && !hamburgerMenu.contains(event.target)) { 30 closeHamburgerMenu(); // ã¡ãã¥ã¼ãéããå¦çãå®è¡ 31 } 32 }); 33 34 // éãããã¿ã³ã®åä½ 35 function setupCloseButton() { 36 if (closeBtn) { 37 closeBtn.addEventListener("click", function() { 38 closeHamburgerMenu(); // ã¡ãã¥ã¼ãéããå¦ç 39 }); 40 } 41 } 42 43 // ã¡ãã¥ã¼ãéããå¦ç 44 function closeHamburgerMenu() { 45 resetHamburgerAccordion(); // ã¢ã³ã¼ãã£ãªã³ããªã»ãã 46 hamburgerContent.classList.add("fade-out"); // ãã§ã¼ãã¢ã¦ãã®ã¢ãã¡ã¼ã·ã§ã³ 47 body.classList.remove("no-scroll"); // ã¹ã¯ãã¼ã«ãåæå¹å 48 setTimeout(function() { 49 hamburgerContent.classList.remove("visible", "fade-out"); 50 hamburgerContent.style.display = "none"; // å®å ¨ã«é表示ã«ãã 51 }, 700); // ãã§ã¼ãã¢ã¦ããå®äºããã¾ã§å¾ æ© 52 } 53}); 54 55 56// ãã³ãã¬ã¼ã¡ãã¥ã¼ç¨ã¢ã³ã¼ãã£ãªã³ã®åæå颿° 57function initializeHumburgerAccordion() { 58 const accordionHeaders = Array.from(document.querySelectorAll('#hamburgerContent .accordion-header')); 59 60 accordionHeaders.forEach(header => { 61 header.removeEventListener('click', accordionClickHandler); 62 header.addEventListener('click', accordionClickHandler); 63 }); 64} 65 66// ã¢ã³ã¼ãã£ãªã³ããªã»ãããã颿° 67function resetHamburgerAccordion() { 68 const accordionHeaders = Array.from(document.querySelectorAll('#hamburgerContent .accordion-header')); 69 const accordionContents = Array.from(document.querySelectorAll('#hamburgerContent .accordion-content')); 70 71 // å ¨ã¦ã®ã¢ã³ã¼ãã£ãªã³ãéããç¶æ ã«ãã 72 accordionHeaders.forEach(header => { 73 header.classList.remove('active'); 74 }); 75 accordionContents.forEach(content => { 76 content.style.maxHeight = null; 77 content.style.opacity = 0; 78 }); 79} 80 81// ã¢ã³ã¼ãã£ãªã³ã®ééå¦çï¼å ±éï¼ 82function accordionClickHandler(event) { 83 const header = event.currentTarget; 84 const content = header.nextElementSibling; 85 86 // ä»ã®ã¢ã³ã¼ãã£ãªã³ãéããå¦ç 87 const accordionHeaders = Array.from(header.closest('nav').querySelectorAll('.accordion-header')); 88 accordionHeaders.forEach(h => { 89 if (h !== header) { 90 h.classList.remove('active'); 91 h.nextElementSibling.style.maxHeight = null; 92 h.nextElementSibling.style.opacity = 0; 93 } 94 }); 95 96 // ã¯ãªãã¯ãããã¢ã³ã¼ãã£ãªã³ã®ééãåãæ¿ãã 97 if (content.style.maxHeight) { 98 content.style.maxHeight = null; 99 content.style.opacity = 0; 100 header.classList.remove('active'); 101 } else { 102 content.style.maxHeight = content.scrollHeight + "px"; 103 content.style.opacity = 1; 104 header.classList.add('active'); 105 } 106} 107 108 109
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.