1/** 2 * nav-config.js 3 * åæ¿å ã°ãã¼ãã«ãã ä¸å 管çãã¡ã¤ã« 4 * 5 * â ä½¿ãæ¹ 6 * WordPress (head.php) : 7 * <div id="snav"></div> ãè¨ç½®ãããã®ãã¡ã¤ã«ãèªã¿è¾¼ã 8 * 9 * ã¯ã¦ãªããã° ããã : 10 * <div id="snav"></div> 11 * ã¯ã¦ãªããã° ããã¿ : 12 * <script src="https://sanseito.jp/nppoj/wp-content/themes/wp_310/nav-config.js"></script> 13 * 14 * â ãªã³ã¯ã追å ã»å¤æ´ããã¨ã㯠NAV_DATA ã ãç·¨éãã 15 */ 16 17(function () { 18 19 /* ========================================================== 20 1. ãã¼ã¹URL 21 WPç°å¢ã§ã¯ head ã« <meta name="snav-base" content="..."> ã 22 åºåãã¦ããã¨èªååå¾ããªããã° https://sanseito.jp ã«ãã©ã¼ã«ããã¯ã 23 ========================================================== */ 24 var BASE = (function () { 25 var m = document.querySelector('meta[name="snav-base"]'); 26 return m ? m.content.replace(/\/$/, '') : 'https://sanseito.jp'; 27 })(); 28 29 /* ========================================================== 30 2. ãããã¼ã¿å®ç¾© 31 - key : ã¡ã¬ã¡ãã¥ã¼ã®ã¯ã©ã¹å (mega_xxx) ã«å¯¾å¿ 32 - label : 表示ã©ãã« 33 - href : ããããªã³ã¯ãnull ã®ã¨ã㯠# ã«ãªããããããã¦ã³ã®ã¿ 34 - groups : PC ã¡ã¬ã¡ãã¥ã¼ã»SP ã¢ã³ã¼ãã£ãªã³ã®åã°ã«ã¼ã 35 å group 㯠items ã®é å 36 - items ã®åè¦ç´ : 37 label : 表示ããã¹ã (HTMLå¯ãspanãªã©) 38 href : ãªã³ã¯å ãBASE ã§å§ã¾ãå ´å㯠BASE + ãã¹ ã§æ¸ã 39 dot : true ã®ã¨ã .dot ã¯ã©ã¹ãä»ä¸ï¼åä¸ããªã³ã¯ï¼ 40 ext : true ã®ã¨ã target="_blank" rel="noopener noreferrer" 41 labelEl : label ã®ä»£ããã«çã®HTMLæååãæ¸¡ãããã¨ã 42 skip : true ã®ã¨ã .skip ã¯ã©ã¹ãä»ä¸ 43 isSpan : true ã®ã¨ã <a> ã§ã¯ãªã <span>ï¼ã©ãã«è¦åºãç¨ï¼ 44 wide : true ã®ã¨ã ul ã« .wide ã¯ã©ã¹ãä»ä¸ï¼ã°ã«ã¼ãåä½ï¼ 45 ========================================================== */ 46 var NAV_DATA = [ 47 { 48 key: 'mega_about', 49 label: 'ç§ãã¡â¦', 50 href: null, 51 groups: [ 52 { 53 items: [ 54 { label: 'åæ¿å ã£ã¦ã©ããªå ï¼', href: BASE + '/why_sanseito' }, 55 { label: 'åæ¿å ã¯ãããªæ¿å ã§ãã', href: BASE + '/why_sanseito/#this_is', dot: true }, 56 { label: 'åæ¿å ã¯ãããªå½ãç®æãã¦ãã¾ãã', href: BASE + '/why_sanseito/#we_aim_for', dot: true }, 57 { label: 'åæ¿å ã§ã¯ãããªäººãã¡ãããã°ã£ã¦ãã¾ãã', href: BASE + '/why_sanseito/#our_info', dot: true }, 58 ] 59 }, 60 { 61 items: [ 62 { label: 'åæ¿å ã«ã¤ãã¦', href: BASE + '/about' }, 63 { label: 'ç念ãç¶±é ', href: BASE + '/about/#philosophy', dot: true }, 64 { label: 'è¦ç´', href: BASE + '/about/#terms', dot: true }, 65 { label: 'åºå ±ç©', href: BASE + '/bulletin/', dot: true }, 66 { label: 'ãã¼ãã¡ã³ãã¼', href: BASE + '/about/#board', dot: true }, 67 ] 68 }, 69 { 70 items: [ 71 { label: 'çµç¹', isSpan: true }, 72 { label: 'çé£åä¼', href: BASE + '/2020/community', dot: true }, 73 { label: 'æ¯é¨', href: BASE + '/2020/community', dot: true }, 74 ] 75 }, 76 { 77 items: [ 78 { label: 'æ©é³³ä¼( ç¶ç¶å¯ä» )', href: BASE + '/2020/continuous_donation/' }, 79 { label: 'ãå¯ä»', href: 'https://congrant.com/project/sanseito/6104', ext: true }, 80 { label: 'ãã£ã¼ãªã¼ã»ã«ã¼ã¯æ°ã¸', href: BASE + '/in_memory_of_charlie_kirk/' }, 81 { label: 'ãããã質å', href: BASE + '/before-contact/' }, 82 ] 83 }, 84 ] 85 }, 86 { 87 key: 'mega_member', 88 label: 'ã¡ã³ãã¼', 89 href: BASE + '/member', 90 groups: [ 91 { 92 items: [ 93 { label: 'ã¡ã³ãã¼', href: BASE + '/member' }, 94 { label: 'ãã¼ãã¡ã³ãã¼', href: BASE + '/member/#board', dot: true }, 95 ] 96 }, 97 { 98 items: [ 99 { label: 'è¡è°é¢è°å¡', href: BASE + '/member/#hor', dot: true }, 100 { label: 'åè°é¢è°å¡', href: BASE + '/member/#hoc', dot: true }, 101 { label: 'é½éåºçè°ä¼è°å¡', href: BASE + '/member/#pa', dot: true }, 102 ] 103 }, 104 { 105 items: [ 106 { label: 'åºè°ä¼è°å¡', href: BASE + '/member/#t23wc', dot: true }, 107 { label: 'å¸è°ä¼è°å¡', href: BASE + '/member/#cc', dot: true }, 108 { label: 'çºè°ä¼ã»æè°ä¼è°å¡', href: BASE + '/member/#tvc', dot: true }, 109 ] 110 }, 111 { 112 wide: true, 113 items: [ 114 { label: 'å ¬èªåè£äºå®è ', isSpan: true }, 115 { label: 'å°æ¹è°å¡é¸æ', href: BASE + '/2020/candidate', dot: true }, 116 ] 117 }, 118 ] 119 }, 120 { 121 key: 'mega_news', 122 label: 'News', 123 href: BASE + '/news', 124 groups: [ 125 { 126 items: [ 127 { label: 'ãã¹ã¦', href: BASE + '/news' }, 128 { label: 'ãç¥ãã', href: BASE + '/news/cat/infomation' }, 129 ] 130 }, 131 { 132 items: [ 133 { label: 'å½ä¼è³ªç', href: BASE + '/news/cat/parliamentary_qa_session' }, 134 { label: 'å½ä¼å ±å', href: BASE + '/news/cat/diet_report' }, 135 ] 136 }, 137 { 138 items: [ 139 { label: '質åä¸»ææ¸', href: BASE + '/news/cat/question' }, 140 { label: 'è¨è ä¼è¦', href: BASE + '/news/cat/press_conference' }, 141 ] 142 }, 143 { 144 items: [ 145 { label: 'è°å¡ããã°', href: BASE + '/news/cat/lawmaker' }, 146 { label: 'æµ·å¤æ å ±', href: BASE + '/news/cat/translated_articles' }, 147 ] 148 }, 149 ] 150 }, 151 { 152 key: 'mega_sns', 153 label: 'SNS', 154 href: null, 155 groups: [ 156 { 157 items: [ 158 { label: 'å ¬å¼YouTube', href: 'https://www.youtube.com/@sanseito-official', ext: true }, 159 { label: 'å½ä¼è³ªåãã£ã³ãã«', href: 'https://www.youtube.com/@sanseito-kokkai', ext: true }, 160 { label: 'ãµããã£ã³ãã«', href: 'https://www.youtube.com/@sanseito_the_second', ext: true }, 161 ] 162 }, 163 { 164 items: [ 165 { labelEl: 'å ¬å¼X', href: 'https://twitter.com/sansei411', ext: true }, 166 { labelEl: 'éå¹´å±X', href: 'https://x.com/sanseito_seinen', ext: true }, 167 { label: 'Facebook', href: 'https://www.facebook.com/sanseito2020', ext: true }, 168 ] 169 }, 170 { 171 items: [ 172 { label: 'å ¬å¼Instagram ', href: 'https://www.instagram.com/sanseito/', ext: true }, 173 { label: 'éå¹´å±Instagram', href: 'https://www.instagram.com/sanseito_seinenkyoku/', ext: true }, 174 { label: 'ã®ã£ã©ãªã¼Instagram', href: 'https://www.instagram.com/sanseito_gallery/', ext: true }, 175 ] 176 }, 177 { 178 items: [ 179 { label: 'TikTok', href: 'https://www.tiktok.com/@sanseito?lang=ja-JP', ext: true }, 180 { label: 'LINE', href: 'https://linevoom.line.me/user/_db41kk5azi1BiJqUApKpije1a115fPKSpXdfG_s', ext: true, skip: true }, 181 ] 182 }, 183 ] 184 }, 185 { 186 key: 'mega_policy', 187 label: 'æ¿ç', 188 href: BASE + '/political_measures/', 189 groups: [ 190 { 191 items: [ 192 { label: '3ã¤ã®éç¹æ¿ç', href: BASE + '/political_measures/' }, 193 ] 194 }, 195 { 196 items: [ 197 { label: 'ï¼.æè²ã»äººã¥ãã', href: BASE + '/political_measures/#education' }, 198 { label: 'ï¼.é£ã¨å¥åº·ã»ç°å¢ä¿å ¨', href: BASE + '/political_measures/#food_health' }, 199 { label: 'ï¼.å½ã®ã¾ãã', href: BASE + '/political_measures/#protection' }, 200 ] 201 }, 202 { 203 items: [ 204 { label: 'åæ¿å æ¿çã«ã¿ãã°', href: BASE + '/political_measures_2025/' }, 205 { label: 'æ°æ¥æ¬æ²æ³ï¼æ§æ³æ¡ï¼', href: BASE + '/new_japanese_constitution//' }, 206 ] 207 }, 208 ] 209 }, 210 { 211 key: 'mega_activity', 212 label: 'æ´»å', 213 href: null, 214 groups: [ 215 { 216 items: [ 217 { label: 'è¡é æ¼èª¬', href: 'https://info.sanseito.jp/' }, 218 { label: 'å½ä¼æ´»åã¾ã¨ã', href: BASE + '/diet_activity' }, 219 ] 220 }, 221 { 222 items: [ 223 { label: 'åæ¿å æ¿æ²»å¡¾', href: BASE + '/seijijuku/', ext: true }, 224 { label: '給é£ããã¸ã§ã¯ã', href: BASE + '/kyushoku_project/', ext: true }, 225 ] 226 }, 227 { 228 items: [ 229 { label: 'çµæ¦80å¹´è«è©±', href: BASE + '/statement_on_the_80th/' }, 230 { label: 'DIYã¿ã¤ã ãºãèªã', href: BASE + '/read_diy_times/' }, 231 ] 232 }, 233 ] 234 }, 235 { 236 key: 'mega_event', 237 label: 'ã¤ãã³ã', 238 href: null, 239 groups: [ 240 { 241 items: [ 242 { label: 'ã¤ãã³ã', href: 'https://info.sanseito.jp/' }, 243 { label: 'ç¥è°·ä»£è¡¨ã¤ãã³ã', href: 'https://info.sanseito.jp/entry/kamiya-s', ext: true }, 244 ] 245 }, 246 { 247 items: [ 248 { label: 'ã¡ããããæ²ç¸ -9.13ãã®å³¶ãæ³ãæ¥-', href: BASE + '/okinawa_2026', ext: true }, 249 { label: 'åè£è åé説æä¼', href: 'https://info.sanseito.jp/entry/koubo-event', ext: true }, 250 ] 251 }, 252 { 253 items: [ 254 { label: 'DIYã¹ã¯ã¼ã«7', href: BASE + '/diyschool7th/', ext: true }, 255 { label: 'ããã¸ã§ã¯ã600', href: BASE + '/project600/' }, 256 { label: 'æ¥æ¬äººãã¡ã¼ã¹ãããã¸ã§ã¯ã', href: BASE + '/japanese_first_project/' }, 257 ] 258 }, 259 ] 260 }, 261 { 262 key: 'mega_join', 263 label: 'åå ãã', 264 href: null, 265 groups: [ 266 { 267 items: [ 268 { label: 'å å¡ã«ãªã', href: BASE + '/participation' }, 269 { label: 'éå¶å å¡', href: BASE + '/participation#join_sanseito', dot: true }, 270 { label: 'ä¸è¬å å¡', href: BASE + '/participation#join02', dot: true }, 271 ] 272 }, 273 { 274 items: [ 275 { label: 'ã«ã¸ã¥ã¢ã«ã«åå ãã', href: BASE + '/participation' }, 276 { label: 'ãµãã¼ã¿ã¼', href: BASE + '/participation#join_free', dot: true }, 277 ] 278 }, 279 { 280 items: [ 281 { label: 'æ©é³³ä¼(ç¶ç¶å¯ä»)', href: BASE + '/2020/continuous_donation/' }, 282 { label: 'ãå¯ä»', href: 'https://congrant.com/project/sanseito/6104', ext: true }, 283 ] 284 }, 285 { 286 items: [ 287 { label: 'å è·å¡åé', href: BASE + '/recruitment-of-party-officials/' }, 288 { label: 'ãã¹ã¿ã¼ç³è¾¼', href: BASE + '/poster_entry/' }, 289 ] 290 }, 291 ] 292 }, 293 { 294 key: 'mega_koubo', 295 label: 'åè£è å ¬å', 296 href: null, 297 groups: [ 298 { 299 items: [ 300 { label: 'è°å¡ã®å ¥å ã»åè£è å ¬å', href: BASE + '/recruitment/' }, 301 { label: 'å°æ¹é¸åè£è å ¬å', href: BASE + '/koubo/' }, 302 ] 303 }, 304 ] 305 }, 306 { 307 key: 'mega_login', 308 label: 'å å¡ãã¼ã¸', 309 href: null, 310 groups: [ 311 { 312 items: [ 313 { label: 'å å¡ãã°ã¤ã³', href: 'https://member.kaihipay.jp/stores/sanseito/me/login', ext: true }, 314 { label: 'DIYãã', href: 'https://learn.sanseito.online/sanseitolms/users/login', ext: true }, 315 ] 316 } 317 ] 318 }, 319 ]; 320 321 /* ========================================================== 322 3. HTML ãã«ãã¼ 323 ========================================================== */ 324 325 /** ã¢ã³ã«ã¼ or ã¹ãã³ã1ã¤çæ */ 326 function buildLink(item) { 327 if (item.isSpan) { 328 return '<span>' + (item.labelEl || item.label) + '</span>'; 329 } 330 var cls = item.dot ? ' class="dot"' : ''; 331 var ext = item.ext ? ' target="_Blank" rel="noopener noreferrer"' : ''; 332 var gtm = ' data-gtm-click="ã°ããããµã_' + item.label + '"'; 333 return '<a href="' + item.href + '"' + cls + ext + gtm + '>' 334 + (item.labelEl || item.label) + '</a>'; 335 } 336 337 /** ã°ã«ã¼ãé å â <ul class="megaMenu-list"> ã®æååãçæ */ 338 function buildGroups(groups) { 339 return groups.map(function (g) { 340 var ulCls = 'megaMenu-list' + (g.wide ? ' wide' : ''); 341 var items = g.items.map(function (item) { 342 var liCls = 'megaMenu-item' + (item.skip ? ' skip' : ''); 343 return '<li class="' + liCls + '">' + buildLink(item) + '</li>'; 344 }).join(''); 345 return '<ul class="' + ulCls + '">' + items + '</ul>'; 346 }).join(''); 347 } 348 349 /** PC ã¡ã¬ã¡ãã¥ã¼å ¨ä½ã® HTML */ 350 function buildPcMegaMenu() { 351 var blocks = NAV_DATA.map(function (nav) { 352 return '<div class="block_wrap ' + nav.key + '">' 353 + '<div class="megaBlock">' 354 + buildGroups(nav.groups) 355 + '</div></div>'; 356 }).join(''); 357 358 return '<div class="megaMenu accordion-content">' 359 + '<div class="inner">' + blocks + '</div>' 360 + '</div>'; 361 } 362 363 /** PC ããä¸é¨ãªã¹ã */ 364 function buildPcNavList() { 365 var items = NAV_DATA.map(function (nav) { 366 var href = nav.href || '#'; 367 var gtm = nav.href ? ' data-gtm-click="ã°ããã_' + nav.label + '"' : ''; 368 var liCls = 'header-item' + (nav.key === 'mega_login' ? ' login' : ''); 369 return '<li class="' + liCls + '">' 370 + '<a href="' + href + '" class="mega ' + nav.key + '" data-mega="' + nav.key + '"' + gtm + '>' 371 + nav.label + '</a></li>'; 372 }).join(''); 373 374 return '<ul class="header-list">' + items + '</ul>'; 375 } 376 377 /** SP ããï¼ã¢ã³ã¼ãã£ãªã³è¾¼ã¿ï¼*/ 378 function buildSpNav() { 379 var items = NAV_DATA.map(function (nav) { 380 var accordion = '<div class="megaMenu accordion-content">' 381 + '<div class="megaBlock t_line">' 382 + buildGroups(nav.groups) 383 + '</div></div>'; 384 385 var liCls = 'header-item' + (nav.key === 'mega_login' ? ' login' : ''); 386 return '<li class="' + liCls + '">' 387 + '<a href="#" class="mega ' + nav.key + ' accordion-header" data-mega="' + nav.key + '">' 388 + nav.label + '</a>' 389 + accordion 390 + '</li>'; 391 }).join(''); 392 393 return '<ul class="header-list">' + items + '</ul>'; 394 } 395 396 /** ããå ¨ä½ã® HTML ãçµã¿ç«ã¦ã¦ #snav ã«æ³¨å ¥ */ 397 function buildNav() { 398 var logoSrc = 'https://sanseito.jp/nppoj/wp-content/themes/wp_310/images/logo.svg?20250910'; 399 400 /* WPç°å¢ã§ã¯ <meta name="snav-logo"> ã§ãã´ãã¹ã䏿¸ãå¯è½ */ 401 var logoMeta = document.querySelector('meta[name="snav-logo"]'); 402 if (logoMeta) logoSrc = logoMeta.content; 403 404 var html = '<div class="head_nav js-header">' 405 406 /* ãã´ */ 407 + '<h1><a href="' + BASE + '">' 408 + '<img class="h_logo js-logo" style="aspect-ratio:115/48;" src="' + logoSrc + '" alt="åæ¿å ">' 409 + '</a></h1>' 410 411 /* ãã³ãã¼ã¬ã¼ */ 412 + '<div class="hamburger"><span></span><span></span><span></span></div>' 413
414 /* PC ããï¼JS ã§ is_mobile ç¸å½ã®å¤å®ã¯ CSS ã«ä»»ããï¼ */ 415 + '<nav class="header-nav">' 416 + buildPcNavList() 417 + buildPcMegaMenu() 418 + '</nav>' 419 420 /* SP ãã */ 421 + '<nav class="header-nav_sp">' 422 + buildSpNav() 423 + '</nav>' 424 425 + '</div>'; /* .head_nav */ 426 427 var wrapper = document.querySelector('.head_nav_box') || document.getElementById('snav'); 428 if (!wrapper) return; 429 430 /* #snav ã®ã¨ãã¯ã©ããã¼divãçæ */ 431 if (wrapper.id === 'snav') { 432 wrapper.className = 'head_nav_box'; 433 } 434 wrapper.innerHTML = html; 435 436 /* ãã¼ã¸ãã¼ãæã« .megaMenu ã® height ãæç¤ºçã«ãªã»ãã 437 BFCache ãåãã¼ã¸ã®ããã¼ç¶æ ãæ®ãã®ãé²ã */ 438 var megaMenu = wrapper.querySelector('.header-nav .megaMenu'); 439 if (megaMenu) megaMenu.style.height = '0'; 440 } 441 442 /* --nav-hï¼ãããã¼ç½å¸¯ã®å®é«ããCSS夿°ã«æ¸ãåºãï¼MVã® padding-top ãåç §ï¼ 443 SVGãã¼ãåã®0/ä¸è¶³ãé¿ãããã load ã§ãåè¨æ¸¬ãresize ã§ãè¿½å¾ */ 444 function updateNavH() { 445 var navBox = document.querySelector('.head_nav_box'); 446 if (!navBox) return; 447 var h = navBox.getBoundingClientRect().height; 448 if (h > 0) { 449 document.documentElement.style.setProperty('--nav-h', h + 'px'); 450 } 451 } 452 453 /* ========================================================== 454 4. JS å¶å¾¡ï¼jQueryå®å ¨ä¸ä½¿ç¨ã»ãã¤ãã£ãJSï¼ 455 ========================================================== */ 456 function initNav() { 457 458 /* ---- slideToggle / fadeOut ã®ä»£æ¿å®è£ ---- */ 459 function slideToggle(el, duration) { 460 duration = duration || 300; 461 if (!el) return; 462 if (el.style.display === 'none' || el.style.display === '') { 463 el.style.display = 'block'; 464 el.style.overflow = 'hidden'; 465 var h = el.scrollHeight; 466 el.style.height = '0'; 467 el.style.transition = 'height ' + duration + 'ms ease'; 468 requestAnimationFrame(function () { 469 el.style.height = h + 'px'; 470 }); 471 el.addEventListener('transitionend', function handler() { 472 el.style.height = ''; 473 el.style.overflow = ''; 474 el.style.transition = ''; 475 el.removeEventListener('transitionend', handler); 476 }); 477 } else { 478 el.style.overflow = 'hidden'; 479 el.style.height = el.scrollHeight + 'px'; 480 el.style.transition = 'height ' + duration + 'ms ease'; 481 requestAnimationFrame(function () { 482 el.style.height = '0'; 483 }); 484 el.addEventListener('transitionend', function handler() { 485 el.style.display = 'none'; 486 el.style.height = ''; 487 el.style.overflow = ''; 488 el.style.transition = ''; 489 el.removeEventListener('transitionend', handler); 490 }); 491 } 492 } 493 494 function fadeOut(el, duration) { 495 duration = duration || 200; 496 if (!el) return; 497 el.style.transition = 'opacity ' + duration + 'ms ease'; 498 el.style.opacity = '0'; 499 el.addEventListener('transitionend', function handler() { 500 el.style.display = 'none'; 501 el.style.opacity = ''; 502 el.style.transition = ''; 503 el.removeEventListener('transitionend', handler); 504 }); 505 } 506 507 function fadeIn(el, duration) { 508 duration = duration || 200; 509 if (!el) return; 510 el.style.display = 'block'; 511 el.style.opacity = '0'; 512 el.style.transition = 'opacity ' + duration + 'ms ease'; 513 requestAnimationFrame(function () { 514 el.style.opacity = '1'; 515 }); 516 el.addEventListener('transitionend', function handler() { 517 el.style.transition = ''; 518 el.removeEventListener('transitionend', handler); 519 }); 520 } 521 522 function animateScrollTo(target, duration) { 523 duration = duration || 800; 524 var start = window.scrollY; 525 var end = target; 526 var startTime = null; 527 function step(ts) { 528 if (!startTime) startTime = ts; 529 var progress = Math.min((ts - startTime) / duration, 1); 530 /* ease in-out */ 531 var ease = progress < 0.5 532 ? 2 * progress * progress 533 : -1 + (4 - 2 * progress) * progress; 534 window.scrollTo(0, start + (end - start) * ease); 535 if (progress < 1) requestAnimationFrame(step); 536 } 537 requestAnimationFrame(step); 538 } 539 540 /* ---- ã¡ã¬ã¡ãã¥ã¼ ä½ç½®ã»ãµã¤ãºè¨ç® ---- */ 541 var cachedNavH = 0; 542 var cachedNavOH = 0; 543 544 function set_mega() { 545 var navList = document.querySelector('.header-nav .header-list'); 546 var jsHeader = document.querySelector('.js-header'); 547 var navBox = document.querySelector('.head_nav_box'); 548 var megaInner= document.querySelector('.header-nav .megaMenu .inner'); 549 var megaMenu = document.querySelector('.header-nav .megaMenu'); 550 var whiteBg = document.querySelector('.header_white_bg'); 551 552 if (!navList || !jsHeader || !navBox) return false; 553 554 var hlw = navList.getBoundingClientRect().width; 555 var jshr = parseFloat(window.getComputedStyle(jsHeader).paddingRight) || 0; 556 var hnbh = navBox.getBoundingClientRect().height; 557 var hnboh= navBox.offsetHeight; 558
559 if (hnbh === 0) return false; 560 561 cachedNavH = hnbh; 562 cachedNavOH = hnboh; 563 564 var mmw = (hlw + jshr + 5) + 'px'; 565 if (megaInner) megaInner.style.width = mmw; 566 if (megaMenu) { 567 megaMenu.style.paddingTop = cachedNavH + 'px'; 568 megaMenu.style.height = '0'; 569 } 570 if (whiteBg) whiteBg.style.height = cachedNavOH + 'px'; 571 return true; 572 } 573 574 function set_mega_retry(count) { 575 count = count || 0; 576 if (set_mega()) return; 577 if (count < 20) setTimeout(function () { set_mega_retry(count + 1); }, 100); 578 } 579 580 set_mega_retry(); 581 window.addEventListener('resize', function () { 582 cachedNavH = 0; 583 set_mega_retry(); 584 }); 585 window.addEventListener('load', function () { 586 set_mega_retry(); 587 /* ãã¼ã¸ID 1517ï¼MyASPã®JSãé å»¶èªã¿è¾¼ã¿ãããããæ®µéçã«ååå¾ */ 588 if (document.body.classList.contains('page-id-1517')) { 589 [200, 500, 1000, 2000, 3000].forEach(function (ms) { 590 setTimeout(function () { cachedNavH = 0; set_mega_retry(); }, ms); 591 }); 592 } 593 }); 594 595 /* ---- PCï¼ããã¼ã§ã¡ã¬ã¡ãã¥ã¼éé ---- */ 596 var datamega = ''; 597 598 function getMegaBlockHeight(key) { 599 var el = document.querySelector('.block_wrap.' + key); 600 if (!el) return 0; 601 var prevVis = el.style.visibility; 602 var prevDis = el.style.display; 603 el.style.visibility = 'hidden'; 604 el.style.display = 'block'; 605 var h = el.offsetHeight; 606 el.style.visibility = prevVis; 607 el.style.display = prevDis; 608 return h; 609 } 610 611 function closeAllBlocks() { 612 document.querySelectorAll('.header-nav .block_wrap').forEach(function (el) { 613 el.style.display = 'none'; 614 }); 615 document.querySelectorAll('.header-nav .header-item a.mega').forEach(function (el) { 616 el.classList.remove('on'); 617 }); 618 var headerList = document.querySelector('.header-list'); 619 if (headerList) headerList.classList.remove('on'); 620 var megaMenu = document.querySelector('.header-nav .megaMenu'); 621 if (megaMenu) megaMenu.style.height = '0'; 622 } 623 624 function reset_mega(dm) { 625 if (!dm) return; 626 closeAllBlocks(); 627 } 628 629 document.addEventListener('mouseenter', function (e) { 630 if (!e.target || !e.target.closest) return; 631 var trigger = e.target.closest('.header-nav .header-item a.mega'); 632 if (!trigger) return; 633 634 closeAllBlocks(); 635 trigger.classList.add('on'); 636 datamega = trigger.getAttribute('data-mega'); 637 638 if (datamega) { 639 var blockH = getMegaBlockHeight(datamega); 640 var h = blockH + cachedNavH + 40; 641 var megaMenu = document.querySelector('.header-nav .megaMenu'); 642 if (megaMenu) megaMenu.style.height = h + 'px'; 643 var blockEl = document.querySelector('.block_wrap.' + datamega); 644 if (blockEl) blockEl.style.display = 'block'; 645 } 646 647 var headerList = document.querySelector('.header-list'); 648 if (headerList) headerList.classList.add('on'); 649 }, true); /* capture:true ã§ãã¹ãããè¦ç´ ã確å®ã«æ¾ã */ 650 651 var navBox = document.querySelector('.head_nav_box'); 652 if (navBox) { 653 navBox.addEventListener('mouseleave', function () { 654 closeAllBlocks(); 655 datamega = ''; 656 }); 657 } 658 659 /* ---- ã¹ã¯ãã¼ã«ï¼ãããæå ---- */ 660 var prevScroll = 0; 661 window.addEventListener('scroll', function () { 662 var cur = window.scrollY; 663 var dir = cur > prevScroll ? 'down' : 'up'; 664 var headNavBox = document.querySelector('.head_nav_box'); 665 if (headNavBox) { 666 headNavBox.classList.remove('scrolling-up', 'scrolling-down'); 667 headNavBox.classList.add('scrolling-' + dir); 668 if (cur > 300) { 669 headNavBox.classList.add('non_opt'); 670 } else { 671 headNavBox.classList.remove('non_opt', 'scrolling-down'); 672 } 673 } 674 prevScroll = cur; 675 676 var totop = document.querySelector('.totop'); 677 if (totop) { 678 if (cur > 300) { fadeIn(totop, 200); } 679 else { fadeOut(totop, 200); } 680 } 681 });
682 683 /* ---- SPï¼ãã³ãã¼ã¬ã¼ ---- */ 684 document.addEventListener('click', function (e) { 685 if (!e.target || !e.target.closest) return; 686 var btn = e.target.closest('.hamburger'); 687 if (!btn) return; 688 btn.classList.toggle('active'); 689 var spNav = document.querySelector('.header-nav_sp'); 690 if (spNav) spNav.classList.toggle('active', btn.classList.contains('active')); 691 }); 692 693 /* ---- SPï¼ã¢ã³ã¼ãã£ãªã³ ---- */ 694 document.addEventListener('click', function (e) { 695 if (!e.target || !e.target.closest) return; 696 var header = e.target.closest('.header-nav_sp .accordion-header'); 697 if (!header) return; 698 header.classList.toggle('active'); 699 var content = header.nextElementSibling; 700 if (content && content.classList.contains('accordion-content')) { 701 slideToggle(content, 300); 702 } 703 }); 704 705 /* ---- SPï¼ãã¼ã¸å ãªã³ã¯ ã¯ãªãã¯æã«ã¡ãã¥ã¼ãéãã ---- */ 706 document.addEventListener('click', function (e) { 707 if (!e.target || !e.target.closest) return; 708 var link = e.target.closest('.insidelink a'); 709 if (!link) return; 710 var headerItem = link.closest('.header-item'); 711 if (!headerItem) return; 712 var accHeader = headerItem.querySelector('.accordion-header'); 713 var mega = accHeader ? accHeader.getAttribute('data-mega') : null; 714 715 var spNav = document.querySelector('.header-nav_sp'); 716 var hamburger = document.querySelector('.hamburger'); 717 if (spNav) spNav.classList.remove('active'); 718 if (hamburger) hamburger.classList.remove('active'); 719 720 if (mega) { 721 var megaEl = headerItem.querySelector('.' + mega); 722 if (megaEl) megaEl.classList.remove('active'); 723 var accContent = headerItem.querySelector('.' + mega + ' + .megaMenu.accordion-content'); 724 if (accContent) slideToggle(accContent, 300); 725 } 726 }); 727 728 /* ---- ãããã¸æ»ã ---- */ 729 document.addEventListener('click', function (e) { 730 if (!e.target || !e.target.closest) return; 731 if (e.target.closest('.totop')) { 732 e.preventDefault(); 733 animateScrollTo(0, 500); 734 } 735 }); 736 737 /* ---- ã¹ã ã¼ãºã¹ã¯ãã¼ã«ï¼ããå ã»totopã»insidelink ã®ã¿å¯¾è±¡ï¼ ---- */ 738 document.addEventListener('click', function (e) { 739 if (!e.target || !e.target.closest) return; 740 var link = e.target.closest('a[href^="#"]'); 741 if (!link) return; 742 /* MyASPãã©ã¼ã å ã®ãªã³ã¯ã¯é¤å¤ */ 743 if (link.closest('form') || link.closest('.content_form')) return; 744 var href = link.getAttribute('href'); 745 if (href === '#') { e.preventDefault(); animateScrollTo(0, 800); return; } 746 var target = document.querySelector(href); 747 if (!target) return; 748 e.preventDefault(); 749 var targetY = target.getBoundingClientRect().top + window.scrollY; 750 /* 䏿¹åã¸ç§»åããå ´åã¯ãããã¼ã表示ãããããããããã¼ã®é«ãåã ãæåã§æ¢ãã */ 751 if (targetY < window.scrollY) { 752 var headNavBoxEl = document.querySelector('.head_nav_box'); 753 if (headNavBoxEl) { 754 targetY = Math.max(0, targetY - headNavBoxEl.offsetHeight); 755 } 756 } 757 animateScrollTo(targetY, 800); 758 }); 759 760 } 761 762 /* ========================================================== 763 5. BFCache 対ç 764 ãã©ã¦ã¶ã®æ»ã/é²ããã£ãã·ã¥ã§å¾©å ãããã¨ãã 765 åãã¼ã¸ã§ããã¼ã㦠height ãã»ããããã .megaMenu ã 766 ãªã»ãããã¦éããç¶æ ã«æ»ã 767 ========================================================== */ 768 window.addEventListener('pageshow', function (e) { 769 if (e.persisted) { 770 /* BFCache ãã復å ãããã¨ã */ 771 var megaMenu = document.querySelector('.header-nav .megaMenu'); 772 var blockWraps = document.querySelectorAll('.block_wrap'); 773 if (megaMenu) megaMenu.style.height = '0'; 774 blockWraps.forEach(function (el) { el.style.display = 'none'; }); 775 /* ãããªã¹ãã® on ã¯ã©ã¹ããªã»ãã */ 776 var headerList = document.querySelector('.header-list'); 777 if (headerList) headerList.classList.remove('on'); 778 document.querySelectorAll('.header-item a.mega').forEach(function (el) { 779 el.classList.remove('on'); 780 }); 781 } 782 }); 783 784 /* ========================================================== 785 6. å®è¡ 786 ========================================================== */ 787 if (document.readyState === 'loading') { 788 document.addEventListener('DOMContentLoaded', function () { 789 buildNav(); 790 initNav(); 791 updateNavH(); 792 });
793 } else { 794 buildNav(); 795 initNav(); 796 updateNavH(); 797 } 798 /* SVGãã¼ãå®äºå¾ã»ãªãµã¤ãºæã«ãç½å¸¯é«ããåè¨æ¸¬ã㦠--nav-h ãæ´æ° */ 799 window.addEventListener('load', updateNavH); 800 window.addEventListener('resize', updateNavH); 801 802})();
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.