1/** 2 * AJEC3 Navigation 3 * ãã³ãã¼ã¬ã¼ã¡ãã¥ã¼å¶å¾¡ 4 */ 5(function() { 6 'use strict'; 7 8 var hamburger = document.getElementById('hamburger'); 9 var mobileNav = document.getElementById('mobile-nav'); 10 11 if (!hamburger || !mobileNav) { 12 return; 13 } 14 15 function openMenu() { 16 mobileNav.classList.add('is-open'); 17 hamburger.classList.add('is-active'); 18 hamburger.setAttribute('aria-expanded', 'true'); 19 hamburger.setAttribute('aria-label', 'ã¡ãã¥ã¼ãéãã'); 20 document.body.style.overflow = 'hidden'; 21 } 22 23 function closeMenu() { 24 mobileNav.classList.remove('is-open'); 25 hamburger.classList.remove('is-active'); 26 hamburger.setAttribute('aria-expanded', 'false'); 27 hamburger.setAttribute('aria-label', 'ã¡ãã¥ã¼ãéã'); 28 document.body.style.overflow = ''; 29 } 30 31 hamburger.addEventListener('click', function() { 32 if (mobileNav.classList.contains('is-open')) { 33 closeMenu(); 34 } else { 35 openMenu(); 36 } 37 }); 38 39 // ã¡ãã¥ã¼å ã®ãªã³ã¯ï¼ãµããªã¹ãã»CTAå«ãï¼ãã¿ãããããéãã 40 var mobileLinks = mobileNav.querySelectorAll('a'); 41 for (var i = 0; i < mobileLinks.length; i++) { 42 mobileLinks[i].addEventListener('click', closeMenu); 43 } 44 45 // ã¢ã³ã¼ãã£ãªã³ã¯æä»ééï¼1ã¤éãããä»ã¯éããï¼ 46 var groups = mobileNav.querySelectorAll('.mobile-nav__group details'); 47 for (var g = 0; g < groups.length; g++) { 48 groups[g].addEventListener('toggle', function() { 49 if (!this.open) return; 50 for (var k = 0; k < groups.length; k++) { 51 if (groups[k] !== this) { 52 groups[k].open = false; 53 } 54 } 55 }); 56 } 57 58 // ç¾å¨å°ãã¤ã©ã¤ã: 表示ä¸URLã¨ä¸è´ãããªã³ã¯ã« .is-current ãä»ããå±ããã°ã«ã¼ããéã 59 // ï¼ãã¹å½¢å¼ã®URLã®ã¿å¯¾è±¡ãã¯ã¨ãªå½¢å¼ã¯ãµã¼ãã¼å´ã® open å¤å®ã§ã«ãã¼ï¼ 60 try { 61 var here = location.pathname.replace(/\/$/, '') + location.search; 62 for (var m = 0; m < mobileLinks.length; m++) { 63 var u = new URL(mobileLinks[m].getAttribute('href'), location.origin); 64 if (u.origin !== location.origin) continue; 65 if (u.pathname.replace(/\/$/, '') + u.search === here) { 66 mobileLinks[m].classList.add('is-current'); 67 var d = mobileLinks[m].closest('details'); 68 if (d) d.open = true; 69 } 70 } 71 } catch (err) { /* URL é対å¿ç°å¢ã§ã¯ç¾å¨å°è¡¨ç¤ºãã¹ããã */ } 72 73 // Esc ãã¼ã§éããï¼ãã©ã¼ã«ã¹ããã¿ã³ã«æ»ãï¼ 74 document.addEventListener('keydown', function(e) { 75 if (e.key === 'Escape' && mobileNav.classList.contains('is-open')) { 76 closeMenu(); 77 hamburger.focus(); 78 } 79 }); 80 81 // ãªãµã¤ãºã§ PC å¹ ã«ãªã£ããéãã 82 var resizeTimer; 83 window.addEventListener('resize', function() { 84 clearTimeout(resizeTimer); 85 resizeTimer = setTimeout(function() { 86 if (window.innerWidth >= 1025) { 87 closeMenu(); 88 } 89 }, 250); 90 }); 91})();
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.