1"use strict" 2/* ----------------------------------------------------------------------- 3userAgent 4----------------------------------------------------------------------- */ 5const UA = window.navigator.userAgent.toLowerCase(); 6var webkit; 7var iOS; 8var IE; 9var Edge; 10var SP; 11var TAB; 12var PC; 13if(UA.indexOf('webkit') > 0) webkit = true; 14if(UA.indexOf('iphone') > 0 || UA.indexOf('ipod') > 0 || UA.indexOf('ipad') > 0) iOS = true; 15if(UA.indexOf('msie') > 0 || UA.indexOf('trident') > 0) IE = true; 16if(UA.indexOf('edge') > 0) Edge = true; 17if(UA.indexOf('android') > 0 || UA.indexOf('iphone') > 0 || UA.indexOf('ipod') > 0) SP = true; 18else if(UA.indexOf('ipad') > 0) TAB = true; 19else PC = true; 20 21window.addEventListener('DOMContentLoaded',function(){ 22 if(iOS) document.body.classList.add('is-iOS'); 23 if(IE) document.body.classList.add('is-ie'); 24 if(Edge) document.body.classList.add('is-edge'); 25}) 26 27/* ----------------------------------------------------------------------- 28SVG for Everybody 29----------------------------------------------------------------------- */ 30svg4everybody(); 31 32/* ----------------------------------------------------------------------- 33SkipLink 34----------------------------------------------------------------------- */ 35function jsSkipLink(){ 36 const skiplink = document.getElementById('skiplink'); 37 const skiplinkActive = 'is-skiplink-active'; 38 var obj = skiplink.querySelectorAll('a'); 39 function addClass(){document.body.classList.add(skiplinkActive);} 40 function removeClass(){document.body.classList.remove(skiplinkActive);} 41 for(var i = 0;i < obj.length;i++){ 42 obj[i].addEventListener('focus',addClass,false); 43 obj[i].addEventListener('blur',removeClass,false); 44 obj[i].addEventListener('click',removeClass,false); 45 } 46} 47 48/* ----------------------------------------------------------------------- 49Scroll 50----------------------------------------------------------------------- */ 51function jsScroll(){ 52 const mqlSP = window.matchMedia('screen and (max-width:750px)'); 53 const mqlTB = window.matchMedia('(max-width: 1024px) and (min-width: 751px)'); 54 const skiplink = document.getElementById('skiplink'); 55 const fixedHeaderMenu = 'is-fixed-header-menu'; 56 const headerMenuIn = 'is-header-menu-in'; 57 const headerMenuOut = 'is-header-menu-out'; 58 const openedHeaderMenu = 'is-opened-header-menu'; 59 const dur = 200; 60 const scroolDur = 500; 61 const swing = function(t,b,c,d){return c * (0.5 - Math.cos(t / d * Math.PI) / 2) + b;}; 62 const scrollElm = (function(){ 63 if('scrollingElement' in document) return document.scrollingElement; 64 if(webkit) return document.body; 65 return document.documentElement; 66 })(); 67 var scrolling; 68 scrolling = false; 69 70 // fixHeaderMenu 71 fixHeaderMenu(); 72 window.addEventListener('scroll',fixHeaderMenu,false); 73 function fixHeaderMenu(){ 74 var top = window.pageYOffset; 75 var headerH = document.getElementById('header').clientHeight; 76 if(!scrolling){ 77 if(top < headerH){ 78 document.body.classList.remove(fixedHeaderMenu); 79 }else{ 80 document.body.classList.add(fixedHeaderMenu); 81 } 82 if(top < window.innerHeight / 3){ 83 if(document.body.classList.contains(headerMenuIn)){ 84 document.body.classList.add(headerMenuOut); 85 setTimeout(function(){ 86 document.body.classList.remove(headerMenuOut); 87 },dur * 2); 88 } 89 document.body.classList.remove(headerMenuIn); 90 }else{ 91 document.body.classList.add(headerMenuIn); 92 document.body.classList.remove(headerMenuOut); 93 } 94 } 95 } 96 97 var trigger = document.querySelectorAll('.js-header-menu-trigger'); 98 var target = document.querySelector('.js-header-menu-target'); 99 100 var items = document.getElementById('header').querySelectorAll('a'); 101 102 // initHeaderMenu 103 if(SP){ 104 initHeaderMenu(); 105 }else{ 106 window.addEventListener('resize',initHeaderMenu,false); 107 } 108 function initHeaderMenu(){ 109 for(var i = 0;i < trigger.length;i++){ 110 if(mqlSP.matches){ 111 document.body.classList.remove(openedHeaderMenu); 112 trigger[i].setAttribute('aria-expanded','false'); 113 target.setAttribute('aria-hidden','true'); 114 }else{ 115 document.body.classList.add(openedHeaderMenu); 116 trigger[i].setAttribute('aria-expanded','true'); 117 target.setAttribute('aria-hidden','false'); 118 } 119 } 120 } 121 122 // rewriteHeaderMenu 123 rewriteHeaderMenu(); 124 function rewriteHeaderMenu(){ 125 const pathname = window.location.pathname; 126 const dir = pathname.substring(0,pathname.lastIndexOf('/')) + '/'; 127 if(dir.substring(1)){ 128 for(var i = 0;i < items.length;i++){ 129 var href = items[i].getAttribute('href'); 130 if(href.indexOf(pathname)!= -1 || href.indexOf(dir)!= -1){ 131 if(href.indexOf('#')!= -1){ 132 items[i].setAttribute('href',href.replace(dir,'')); 133 items[i].classList.add('js-scroll'); 134 } 135 } 136 } 137 } 138 } 139 140 var scrollItems = document.getElementById('header').querySelectorAll('.js-scroll'); 141 142 // toggleHeaderMenu 143 for(var i = 0;i < trigger.length;i++){ 144 trigger[i].addEventListener('click',toggleHeaderMenu,false); 145 } 146 for(var i = 0;i < scrollItems.length;i++){ 147 if(SP){ 148 scrollItems[i].addEventListener('click',toggleHeaderMenu,false); 149 } 150 } 151 function toggleHeaderMenu(e){ 152 e.preventDefault(); 153 for(var i = 0;i < trigger.length;i++){ 154 if(trigger[i].getAttribute('aria-expanded') == 'true'){ 155 document.body.classList.remove(openedHeaderMenu); 156 trigger[i].setAttribute('aria-expanded','false'); 157 setTimeout(function(){ 158 target.setAttribute('aria-hidden','true'); 159 },dur); 160 }else{ 161 trigger[i].setAttribute('aria-expanded','true'); 162 target.setAttribute('aria-hidden','false'); 163 setTimeout(function(){ 164 document.body.classList.add(openedHeaderMenu); 165 },1); 166 } 167 } 168 } 169 170 // smoothScroll 171 var obj = document.getElementsByClassName('js-scroll'); 172 function smoothScroll(e){ 173 e.preventDefault(); 174 var buffer = 0; 175 var headerH = document.getElementById('header').clientHeight; 176 if(mqlTB.matches){ 177 headerH = window.innerWidth * 95 / 1024; 178 }else{ 179 if(!mqlSP.matches){ 180 headerH = 95; 181 } 182 } 183 buffer = headerH; 184 const targetElm = document.querySelector(e.currentTarget.getAttribute('href')); 185 const targetPos = targetElm.getBoundingClientRect().top - buffer; 186 if(!targetElm) return; 187 var startTime = Date.now(); 188 var scrollFrom = scrollElm.scrollTop; 189 (function loop(){ 190 var currentTime = Date.now() - startTime; 191 if(currentTime < scroolDur){ 192 scrollTo(0,swing(currentTime,scrollFrom,targetPos,scroolDur)); 193 window.requestAnimationFrame(loop); 194 } else { 195 scrollTo(0,targetPos + scrollFrom); 196 targetElm.focus(); 197 } 198 })(); 199 setTimeout(function(){ 200 if(targetElm !== e){ 201 targetElm.tabIndex = -1; 202 targetElm.focus(); 203 } 204 },scroolDur); 205 scrolling = true; 206 if(this.classList.contains('js-skiplink')){ 207 setTimeout(function(){ 208 scrolling = false;
209 },scroolDur + 50); 210 }else{ 211 setTimeout(function(){ 212 scrolling = false; 213 },dur * 2 - 1); 214 } 215 if(this.classList.contains('js-pagetop')){ 216 if(document.body.classList.contains(headerMenuIn)){ 217 document.body.classList.add(headerMenuOut); 218 setTimeout(function(){ 219 document.body.classList.remove(headerMenuOut); 220 document.body.classList.remove(fixedHeaderMenu); 221 },dur * 2); 222 } 223 document.body.classList.remove(headerMenuIn); 224 } 225 } 226 for(var i = 0;i < obj.length;i++){ 227 obj[i].addEventListener('click',smoothScroll,false); 228 } 229 230 // anchorJump 231 anchorJump(); 232 function anchorJump(){ 233 const hash = window.location.hash; 234 if(hash){ 235 var headerH = document.getElementById('header').clientHeight; 236 if(mqlTB.matches){ 237 headerH = window.innerWidth * 95 / 1024; 238 }else{ 239 if(!mqlSP.matches){ 240 headerH = 95; 241 } 242 } 243 setTimeout(function(){ 244 window.scrollBy(0,-headerH); 245 },1); 246 } 247 } 248} 249 250/* ----------------------------------------------------------------------- 251Focus 252----------------------------------------------------------------------- */ 253function jsFocus(){ 254 var last = document.getElementsByClassName('js-focus-last'); 255 var first = document.getElementsByClassName('js-focus-first'); 256 function focusTo(e){ 257 if((e.which === 9 && !e.shiftKey)){ 258 e.preventDefault(); 259 var to = this.dataset.to; 260 var first = document.querySelectorAll('.js-focus-first[data-from="'+to+'"]'); 261 first[0].focus(); 262 } 263 } 264 function focusFrom(e){ 265 if((e.which === 9 && e.shiftKey)){ 266 e.preventDefault(); 267 var from = this.dataset.from; 268 var last = document.querySelectorAll('.js-focus-last[data-to="'+from+'"]'); 269 last[0].focus(); 270 } 271 } 272 for(var i = 0;i < last.length;i++){ 273 last[i].addEventListener('keydown',focusTo,false); 274 } 275 for(var i = 0;i < first.length;i++){ 276 first[i].addEventListener('keydown',focusFrom,false); 277 } 278} 279 280/* ----------------------------------------------------------------------- 281SideMenu 282----------------------------------------------------------------------- */ 283function jsSideMenu(){ 284 const mql = window.matchMedia('screen and (max-width:750px)'); 285 const sideMenuIn = 'is-sidemenu-in'; 286 const sideMenuOut = 'is-sidemenu-out'; 287 const openedSideMenu = 'is-opened-sidemenu'; 288 const current = 'is-current'; 289 const dur = 200; 290 var trigger = document.querySelector('.js-sidemenu-trigger'); 291 var target = document.querySelector('.js-sidemenu-target'); 292 var bar = document.querySelector('.js-sidemenu-bar'); 293 294 // initSideMenu 295 if(SP){ 296 initSideMenu(); 297 }else{ 298 window.addEventListener('resize',initSideMenu,false); 299 } 300 function initSideMenu(){ 301 if(trigger){ 302 if(mql.matches){ 303 document.body.classList.remove(sideMenuIn); 304 document.body.classList.remove(openedSideMenu); 305 trigger.setAttribute('aria-expanded','false'); 306 trigger.setAttribute('aria-hidden','true'); 307 target.setAttribute('aria-hidden','true'); 308 viewSideMenu(); 309 }else{ 310 document.body.classList.add(sideMenuIn); 311 document.body.classList.add(openedSideMenu); 312 trigger.setAttribute('aria-expanded','true'); 313 trigger.setAttribute('aria-hidden','true'); 314 target.setAttribute('aria-hidden','false'); 315 } 316 trigger.addEventListener('click',toggleSideMenu,false); 317 }else if(bar){ 318 if(mql.matches){ 319 var barH = bar.parentNode.clientHeight; 320 var footer = document.getElementById('footer'); 321 footer.style.paddingBottom = barH + 'px'; 322 document.body.classList.add(openedSideMenu); 323 bar.setAttribute('aria-hidden','false'); 324 viewSideMenu(); 325 }else{ 326 bar.setAttribute('aria-expanded','true'); 327 bar.setAttribute('aria-hidden','true'); 328 target.setAttribute('aria-hidden','false'); 329 } 330 bar.addEventListener('click',toggleSideMenu,false); 331 } 332 } 333 334 // currentSideMenu 335 currentSideMenu(); 336 function currentSideMenu(){ 337 var top; 338 if(target){ 339 var dir = location.href.split("/"); 340 var fileName = dir[dir.length-1]; 341 var currentDir = dir[dir.length-2]; 342 var prevDir = dir[dir.length-3]; 343 var item = target.querySelector('.p-sidemenu-list').children; 344 if(prevDir.match(/watch/) || prevDir.match(/race/)){ 345 if(!fileName || fileName.indexOf('index')!= -1){ 346 top = true; 347 } 348 }else{ 349 top = false;
350 } 351 if(top){ 352 target.querySelector('.is-top').classList.add(current); 353 }else{ 354 for(var i = 0;i < item.length;i++){ 355 if(item[i].classList.contains('is-' + currentDir + '')){ 356 target.querySelector('.is-' + currentDir + '').classList.add(current); 357 } 358 } 359 } 360 } 361 } 362 363 // viewSideMenu 364 viewSideMenu(); 365 window.addEventListener('scroll',viewSideMenu,false); 366 function viewSideMenu(){ 367 if(trigger){ 368 if(mql.matches){ 369 var top = window.pageYOffset; 370 var bottom = top + window.innerHeight; 371 var header = document.getElementById('header'); 372 var footer = document.getElementById('footer'); 373 if(top < header.clientHeight){ 374 if(document.body.classList.contains(sideMenuIn)){ 375 document.body.classList.add(sideMenuOut); 376 setTimeout(function(){ 377 document.body.classList.remove(sideMenuOut); 378 trigger.setAttribute('aria-hidden','true'); 379 trigger.setAttribute('aria-expanded','false'); 380 target.setAttribute('aria-hidden','true'); 381 },dur * 2); 382 } 383 document.body.classList.remove(sideMenuIn); 384 document.body.classList.remove(openedSideMenu); 385 }else{ 386 document.body.classList.add(sideMenuIn); 387 document.body.classList.remove(sideMenuOut); 388 trigger.setAttribute('aria-hidden','false'); 389 } 390 }else{ 391 document.body.classList.add(sideMenuIn); 392 document.body.classList.add(openedSideMenu); 393 trigger.setAttribute('aria-expanded','true'); 394 trigger.setAttribute('aria-hidden','true'); 395 target.setAttribute('aria-hidden','false'); 396 } 397 } 398 } 399 400 // toggleSideMenu 401 function toggleSideMenu(e){ 402 e.preventDefault(); 403 if(trigger){ 404 if(trigger.getAttribute('aria-expanded') == 'true'){ 405 document.body.classList.remove(openedSideMenu); 406 trigger.setAttribute('aria-expanded','false'); 407 setTimeout(function(){ 408 target.setAttribute('aria-hidden','true'); 409 },dur); 410 }else{ 411 trigger.setAttribute('aria-expanded','true'); 412 target.setAttribute('aria-hidden','false'); 413 setTimeout(function(){ 414 document.body.classList.add(openedSideMenu); 415 },1); 416 } 417 }else if(bar){ 418 if(bar.getAttribute('aria-expanded') == 'true'){ 419 document.body.classList.remove(openedSideMenu); 420 bar.setAttribute('aria-expanded','false'); 421 setTimeout(function(){ 422 target.setAttribute('aria-hidden','true'); 423 },dur); 424 }else{ 425 bar.setAttribute('aria-expanded','true'); 426 target.setAttribute('aria-hidden','false'); 427 setTimeout(function(){ 428 document.body.classList.add(openedSideMenu); 429 },1); 430 } 431 } 432 } 433} 434 435/* ----------------------------------------------------------------------- 436PickupSlide 437----------------------------------------------------------------------- */ 438function jsPickupSlide(){ 439 var slide = document.querySelectorAll('.js-pickup-slide'); 440 if(slide.length){ 441 var mySwiper = new Swiper('.js-pickup-slide',{ 442 loop: true, 443 autoplay:{ 444 delay: 3000 445 }, 446 slidesPerView: 2, 447 slidesPerGroup: 2, 448 spaceBetween: 15, 449 breakpoints:{ 450 751:{ 451 slidesPerView: 5, 452 slidesPerGroup: 1, 453 spaceBetween: 20 454 } 455 }, 456 pagination:{ 457 el: '.p-pickup-slide-dot', 458 clickable: true, 459 renderBullet:function(index,className){ 460 return '<span class="p-pickup-slide-dot__item ' + className + '"><span class="u-sr">' + index + '</span></span>'; 461 } 462 }, 463 navigation:{ 464 nextEl: '.p-pickup-slide-btn--next', 465 prevEl: '.p-pickup-slide-btn--prev' 466 } 467 }); 468 } 469} 470 471/* ----------------------------------------------------------------------- 472Accordion 473----------------------------------------------------------------------- */ 474function jsAccordion(){ 475 const dur = 200; 476 var group = document.querySelectorAll('.js-accordion-group'); 477 478 // toggleAccordion 479 function toggleAccordion(obj){ 480 var target = obj.nextElementSibling; 481 if(obj.getAttribute('aria-expanded') == 'true'){ 482 obj.setAttribute('aria-expanded','false'); 483 var targetH = target.scrollHeight; 484 target.style.height = targetH + 'px'; 485 setTimeout(function(){ 486 target.style.height = '0'; 487 setTimeout(function(){ 488 target.setAttribute('aria-hidden','true'); 489 },dur); 490 },1); 491 }else{ 492 obj.setAttribute('aria-expanded','true'); 493 target.setAttribute('aria-hidden','false'); 494 setTimeout(function(){ 495 var targetH = target.scrollHeight; 496 target.style.height = targetH + 'px'; 497 setTimeout(function(){ 498 target.style.height = 'auto'; 499 },dur); 500 },1); 501 } 502 } 503 for(var i = 0;i < group.length;i++){ 504 var trigger = group[i].children[0]; 505 var target = group[i].children[1]; 506 if(trigger.getAttribute('aria-expanded') == 'true'){ 507 target.style.height = 'auto'; 508 }else{ 509 target.style.height = '0'; 510 } 511 trigger.addEventListener('click',function(e){ 512 e.preventDefault(); 513 var obj = this; 514 toggleAccordion(obj); 515 }) 516 trigger.addEventListener('keypress',function(e){ 517 if(e.which === 13){ 518 e.preventDefault(); 519 var obj = e.srcElement; 520 toggleAccordion(obj); 521 } 522 }) 523 } 524}
524 525 526/* ----------------------------------------------------------------------- 527LocalTabs 528----------------------------------------------------------------------- */ 529function jsLocalTabs(){ 530 var group = document.querySelectorAll('.js-local-tab-group'); 531 532 // initLocalTabs 533 if(group.length){ 534 initLocalTabs(); 535 } 536 function initLocalTabs(){ 537 var href = location.href; 538 if(href.indexOf('/company/recruit/')!= -1){ 539 var hash = location.hash; 540 if(hash){ 541 var current; 542 if(hash.indexOf('official')!= -1){ 543 current = 2; 544 } 545 currentLocalTabs(current); 546 } 547 } 548 function currentLocalTabs(index){ 549 for(var i = 0;i < group.length;i++){ 550 var tab = group[i].querySelectorAll('li[role="tab"]'); 551 var tabpanel = group[i].querySelectorAll('div[role="tabpanel"]'); 552 var tabhead = group[i].querySelectorAll('.js-local-tab-head'); 553 for(var j = 0;j < tab.length;j++){ 554 tab[j].setAttribute('aria-selected','false'); 555 tab[index].setAttribute('aria-selected','true'); 556 } 557 for(var j = 0;j < tabpanel.length;j++){ 558 tabpanel[j].setAttribute('aria-hidden','true'); 559 tabpanel[index].setAttribute('aria-hidden','false'); 560 } 561 if(tabhead.length){ 562 for(var j = 0;j < tabhead.length;j++){ 563 tabhead[j].setAttribute('aria-hidden','true'); 564 tabhead[index].setAttribute('aria-hidden','false'); 565 } 566 } 567 } 568 } 569 } 570 571 // changeTabs 572 function changeTabs(obj){ 573 var index = obj.getAttribute('aria-posinset'); 574 var node = new Array(); 575 var parent = obj.parentNode; 576 for(var i = 0;parent; i++) { 577 node[i] = {nodeName:parent.nodeName,className:parent.className}; 578 parent = parent.parentNode; 579 if(parent.classList.contains('js-local-tab-group')){ 580 var tab = parent.querySelectorAll('li[role="tab"]'); 581 var tabpanel = parent.querySelectorAll('div[role="tabpanel"]'); 582 var tabhead = parent.querySelectorAll('.js-local-tab-head'); 583 for(var j = 0;j < tab.length;j++){ 584 tab[j].setAttribute('aria-selected','false'); 585 tab[index - 1].setAttribute('aria-selected','true'); 586 } 587 for(var j = 0;j < tabpanel.length;j++){ 588 tabpanel[j].setAttribute('aria-hidden','true'); 589 tabpanel[index - 1].setAttribute('aria-hidden','false'); 590 } 591 if(tabhead.length){ 592 for(var j = 0;j < tabhead.length;j++){ 593 tabhead[j].setAttribute('aria-hidden','true'); 594 tabhead[index - 1].setAttribute('aria-hidden','false'); 595 } 596 } 597 break; 598 }else{ 599 continue; 600 } 601 } 602 } 603 for(var i = 0;i < group.length;i++){ 604 var trigger = group[i].querySelectorAll('.js-local-tab-trigger'); 605 for(var j = 0;j < trigger.length;j++){ 606 trigger[j].addEventListener('click',function(e){ 607 e.preventDefault(); 608 var obj = this; 609 changeTabs(obj); 610 }) 611 trigger[j].addEventListener('keypress',function(e){ 612 if(e.which === 13){ 613 e.preventDefault(); 614 var obj = e.srcElement; 615 changeTabs(obj); 616 } 617 }) 618 } 619 } 620} 621 622/* ----------------------------------------------------------------------- 623NewsTabs 624----------------------------------------------------------------------- */ 625function jsNewsTabs(){ 626 const init = 20; // åæè¡¨ç¤ºæ° 627 const add = 20; // 追å è¡¨ç¤ºæ° 628 var group = document.querySelectorAll('.js-news-tab-group'); 629 630 // init 631 if(group.length){ 632 var tabpanel = document.querySelectorAll('div[role="tabpanel"]'); 633 for(var i = 0;i < tabpanel.length;i++){ 634 tabpanel[i].dataset.viewed = init; 635 var items = tabpanel[i].querySelectorAll('.p-news-list__item'); 636 var more = tabpanel[i].querySelector('.js-news-tab-more'); 637 if(more){ 638 if(items.length < init + 1){ 639 more.setAttribute('aria-hidden','true'); 640 } 641 } 642 for(var j = 0;j < items.length;j++){ 643 if(j > init - 1){ 644 items[j].setAttribute('aria-hidden','true'); 645 } 646 } 647 } 648 } 649 650 // changeTabs 651 function changeTabs(obj){ 652 var index = obj.getAttribute('aria-posinset'); 653 var node = new Array(); 654 var parent = obj.parentNode; 655 for(var i = 0;parent; i++){ 656 node[i] = {nodeName:parent.nodeName,className:parent.className}; 657 parent = parent.parentNode; 658 if(parent.classList.contains('js-news-tab-group')){ 659 var tab = parent.querySelectorAll('li[role="tab"]'); 660 var tabpanel = parent.querySelectorAll('div[role="tabpanel"]'); 661 for(var j = 0;j < tab.length;j++){ 662 tab[j].setAttribute('aria-selected','false'); 663 tab[index - 1].setAttribute('aria-selected','true'); 664 } 665 for(var j = 0;j < tabpanel.length;j++){ 666 tabpanel[j].setAttribute('aria-hidden','true'); 667 tabpanel[index - 1].setAttribute('aria-hidden','false'); 668 if(!(j == index - 1)){ 669 tabpanel[j].dataset.viewed = init; 670 var items = tabpanel[index - 1].querySelectorAll('.p-news-list__item'); 671 var more = tabpanel[index - 1].querySelector('.js-news-tab-more'); 672 for(var i = 0;i < items.length;i++){ 673 if(i > init - 1){ 674 items[i].setAttribute('aria-hidden','true'); 675 } 676 } 677 for(var i = 0;i < init;i++){ 678 if(more){ 679 if(items.length > init){ 680 more.setAttribute('aria-hidden','false'); 681 }else{ 682 more.setAttribute('aria-hidden','true'); 683 } 684 } 685 } 686 } 687 } 688 break; 689 }else{ 690 continue; 691 } 692 } 693 } 694 695 // moreTabs 696 function moreTabs(obj){ 697 var node = new Array(); 698 var parent = obj.parentNode; 699 for(var i = 0;parent; i++) { 700 node[i] = {nodeName:parent.nodeName,className:parent.className}; 701 parent = parent.parentNode; 702 if(parent.classList.contains('p-news-tab-panel__item')){ 703 var items = parent.querySelectorAll('.p-news-list__item'); 704 var viewed = Number(parent.dataset.viewed); 705 var viewed_add = viewed += add; 706 parent.dataset.viewed = viewed_add; 707 for(var i = 0;i < viewed_add;i++){ 708 items[i].setAttribute('aria-hidden','false'); 709 if(items.length < viewed_add + 1){ 710 obj.setAttribute('aria-hidden','true'); 711 } 712 } 713 break; 714 }else{ 715 continue; 716 } 717 } 718 } 719 for(var i = 0;i < group.length;i++){ 720 var trigger = group[i].querySelectorAll('.js-news-tab-trigger'); 721 for(var j = 0;j < trigger.length;j++){ 722 trigger[j].addEventListener('click',function(e){ 723 e.preventDefault(); 724 var obj = this; 725 changeTabs(obj); 726 }) 727 trigger[j].addEventListener('keypress',function(e){ 728 if(e.which === 13){ 729 e.preventDefault(); 730 var obj = e.srcElement; 731 changeTabs(obj); 732 } 733 }) 734 } 735 var more = group[i].querySelectorAll('.js-news-tab-more'); 736 for(var j = 0;j < more.length;j++){ 737 more[j].addEventListener('click',function(e){ 738 e.preventDefault(); 739 var obj = this; 740 moreTabs(obj); 741 }) 742 more[j].addEventListener('keypress',function(e){ 743 if(e.which === 13){ 744 e.preventDefault(); 745 var obj = e.srcElement; 746 moreTabs(obj); 747 } 748 }) 749 } 750 } 751} 752 753/* ----------------------------------------------------------------------- 754UpdatesList 755----------------------------------------------------------------------- */ 756function jsUpdatesList(){ 757 var obj = document.querySelectorAll('.js-updates-list'); 758 const scrollable = 'is-scrollable'; 759 if(obj.length){ 760 function changeHeight(){ 761 for(var i = 0;i < obj.length;i++){ 762 var items = obj[i].querySelectorAll('.p-updates-list__item'); 763 var totalH = 0; 764 for(var j = 0;j < items.length;j++){ 765 if(j < 3){ 766 var itemsH = items[j].scrollHeight; 767 totalH += itemsH; 768 obj[i].style.height = totalH + 'px'; 769 } 770 if(j > 2){ 771 obj[i].classList.add(scrollable); 772 } 773 } 774 } 775 }
776 window.addEventListener('load',changeHeight,false); 777 window.addEventListener('resize',changeHeight,false); 778 } 779} 780 781/* ----------------------------------------------------------------------- 782Modal 783----------------------------------------------------------------------- */ 784function jsModal(){ 785 var slided = false; 786 var modalOpen = false; 787 var lastFocused; 788 let mySwiper; 789 const openedModal = 'is-opened-modal'; 790 const closedModal = 'is-closed-modal'; 791 const dur = 200; 792 var slide = document.querySelectorAll('.js-modal-slide'); 793 if(slide.length){ 794 mySwiper = new Swiper('.js-modal-slide',{ 795 loop: false, 796 centeredSlides: true, 797 slidesPerView: 1, 798 init: false, 799 navigation:{ 800 nextEl: '.p-modal-slide-btn--next', 801 prevEl: '.p-modal-slide-btn--prev', 802 } 803 }); 804 } 805 806 // openModal 807 var openObj = document.querySelectorAll('.js-modal-open'); 808 function openModal(e){ 809 e.preventDefault(); 810 modalOpen = true; 811 var openTarget = document.querySelectorAll('.js-modal-target'); 812 document.querySelector('.p-modal-wrap').setAttribute('aria-hidden','false'); 813 document.body.classList.add(openedModal); 814 document.body.classList.remove(closedModal); 815 var index = this.dataset.index; 816 for(var i = 0;i < openTarget.length;i++){ 817 openTarget[i].setAttribute('aria-hidden','true'); 818 openTarget[index].setAttribute('aria-hidden','false'); 819 } 820 const targetElm = document.querySelector(e.currentTarget.getAttribute('href')); 821 if(!targetElm) return; 822 setTimeout(function(){ 823 if(targetElm !== e){ 824 targetElm.tabIndex = -1; 825 targetElm.focus(); 826 } 827 },dur); 828 } 829 for(var i = 0;i < openObj.length;i++){ 830 openObj[i].addEventListener('click',openModal,false); 831 } 832 833 // openSlideModal 834 var openSlideObj = document.querySelectorAll('.js-modal-open-slide'); 835 var animationSlideObj = document.querySelector('.p-modal-wrap'); 836 function openSlideModal(e){ 837 lastFocused = document.activeElement; 838 var initial = this.dataset.initial; 839 if(!slided){ 840 animationSlideObj.addEventListener('animationstart', () => { 841 mySwiper.init(); 842 mySwiper.slideTo(initial,1,true); 843 }, { once: true }); 844 } 845 slided = true; 846 setTimeout(function(){ 847 mySwiper.slideTo(initial,1,true); 848 },1); 849 } 850 for(var i = 0;i < openSlideObj.length;i++){ 851 openSlideObj[i].addEventListener('click',openSlideModal,false); 852 } 853 854 // closeModal 855 var closeObj = document.querySelectorAll('.js-modal-close'); 856 function closeModal(){ 857 modalOpen = false; 858 document.body.classList.add(closedModal); 859 document.body.classList.remove(openedModal); 860 setTimeout(function(){ 861 document.body.classList.remove(closedModal); 862 document.querySelector('.p-modal-wrap').setAttribute('aria-hidden','true'); 863 lastFocused.focus(); 864 },dur); 865 } 866 for(var i = 0;i < closeObj.length;i++){ 867 closeObj[i].addEventListener('click',function(e){ 868 e.preventDefault(); 869 closeModal(); 870 }) 871 closeObj[i].addEventListener('keypress',function(e){ 872 if(e.which === 13){ 873 e.preventDefault(); 874 closeModal(); 875 } 876 }) 877 } 878 879 let resizeTimer; 880 window.addEventListener('resize', () => { 881 clearTimeout(resizeTimer); 882 resizeTimer = setTimeout(() => { 883 if (slided && !modalOpen) { 884 mySwiper.destroy(false, true); 885 slided = false; 886 887 mySwiper = new Swiper('.js-modal-slide',{ 888 loop: false, 889 centeredSlides: true, 890 slidesPerView: 1, 891 init: false, 892 navigation:{ 893 nextEl: '.p-modal-slide-btn--next', 894 prevEl: '.p-modal-slide-btn--prev', 895 } 896 }); 897 } 898 }, 1); 899 }); 900} 901 902function jsArticlesEntry(){ 903 const wrap = document.getElementById('wrap'); 904 var list = document.querySelectorAll('.js-articles-list'); 905 function initArticlesEntry(){ 906 var txt = ''; 907 if(wrap.dataset.directory == 'watch'){ 908 txt = '<span>ãã±ãããè³¼å ¥ãã</span>'; 909 } 910 if(wrap.dataset.directory == 'race'){ 911 txt = '<span>ã¨ã³ããªã¼åä»ä¸</span>'; 912 } 913 var now = new Date(); 914 var now_Y = String(replaceFormat(now,'YYYY')); // ç¾å¨ï¼å¹´ï¼ 915 var now_M = String('0' + replaceFormat(now,'MM')).slice(-2); // ç¾å¨ï¼æï¼ 916 var now_D = String('0' + replaceFormat(now,'DD')).slice(-2); // ç¾å¨ï¼æ¥ï¼ 917 var now_h = String('0' + replaceFormat(now,'hh')).slice(-2); // ç¾å¨ï¼æï¼ 918 var now_m = String('0' + replaceFormat(now,'mm')).slice(-2); // ç¾å¨ï¼åï¼ 919 var now_T = (now_Y + '-' + now_M + '-' + now_D + 'T' + now_h + ':' + now_m).toLocaleStr
919ing(); 920 for(var i = 0;i < list.length;i++){ 921 var item = list[i].querySelectorAll('a'); 922 for(var j = 0;j < item.length;j++){ 923 var label = item[j].querySelector('.js-articles-entry'); 924 var start = item[j].dataset.entryStart; // ã¨ã³ããªã¼éå§ 925 var end = item[j].dataset.entryEnd; // ã¨ã³ããªã¼çµäº 926 if(label){ 927 if(start && end){ // ã¨ã³ããªã¼éå§/çµäºã©ã¡ããè¨å®ããã¦ãã 928 if(start < now_T && now_T <= end){label.innerHTML = txt;}else{label.remove();} 929 } 930 if(start && !end){ // ã¨ã³ããªã¼éå§ã ãè¨å®ããã¦ãã 931 if(start < now_T){label.innerHTML = txt;}else{label.remove();} 932 } 933 if(!start && end){ // ã¨ã³ããªã¼çµäºã ãè¨å®ããã¦ãã 934 if(now_T <= end){label.innerHTML = txt;}else{label.remove();} 935 } 936 if(!start && !end){ // ã¨ã³ããªã¼éå§/çµäºã©ã¡ããè¨å®ããã¦ããªã 937 label.remove(); 938 } 939 } 940 } 941 } 942 } 943 function replaceFormat(date,format){ 944 format = format.replace(/YYYY/,date.getFullYear()); 945 format = format.replace(/MM/,date.getMonth() + 1); 946 format = format.replace(/DD/,date.getDate()); 947 format = format.replace(/hh/,date.getHours()); 948 format = format.replace(/mm/,date.getMinutes()); 949 return format; 950 } 951 initArticlesEntry(); 952} 953 954window.addEventListener('DOMContentLoaded',function(){ 955 jsSkipLink(); 956 jsScroll(); 957 jsFocus(); 958 jsSideMenu(); 959 jsPickupSlide(); 960 jsAccordion(); 961 jsLocalTabs(); 962 jsNewsTabs(); 963 jsUpdatesList(); 964 jsModal(); 965 jsArticlesEntry(); 966})
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.