(function ($) {
'use strict';
{
window.addEventListener('load',function(){
$('body').addClass('is-loded');
});
}
// 銉栥儹銉冦偗闁撱伄鍏遍€氬鏁
const GLOBAL = {};
// 銉樸儍銉€銉机 銈广優銉涚敤銉°儖銉ャ兗銉堛偘銉偣銈ゃ儍銉
const $spToggle = $('.js-sp-toggle');
// 銉樸儍銉€銉机 銈广優銉涚敤瑷€瑾為伕鎶炪儓銈般儷銈广偆銉冦儊
const $langToggle = $('.js-header-lang-toggle');
// 銉樸儍銉€銉机 銈广優銉涚敤銈般儹銉笺儛銉儘銉冦儓銉兗銈儓銈般儷銈广偆銉冦儊
const $globalToggle = $('.js-global-toggle');
/* passive銈儣銈枫儳銉 */
{
let passiveSupported = false;
try {
const options = {
get passive() {
passiveSupported = true;
return false;
},
};
window.addEventListener('test', null, options);
window.removeEventListener('test', null, options);
} catch (e) {
passiveSupported = false;
}
GLOBAL.passiveOption = passiveSupported ? { passive: true } : false;
}
/* 鑳屾櫙鍥哄畾鍏遍€ */
{
const body = document.body;
let scrollY;
GLOBAL.isKeepFix = false;
GLOBAL.fixBody = function (bool) {
if (bool) {
scrollY = window.pageYOffset;
body.classList.add('is-scroll-fixed');
body.style.top = -scrollY + 'px';
} else if (GLOBAL.isKeepFix) {
GLOBAL.isKeepFix = false;
} else {
body.classList.remove('is-scroll-fixed');
body.style.top = null;
window.scrollTo(0, scrollY);
}
};
}
/* 銉樸儍銉€銉机 銉°偓銉夈儹銉冦儣銉€銈︺兂 */
{
/* PC銉娿儞銈层兗銈枫儳銉 */
const $globalNav = $('.js-global-nav');
// 銈兗銉愩兗銉偆銉ゃ兗鎸垮叆
const $overlay = $('
').addClass('l-header-overlay').appendTo('body');
// 銈傘仐浣曘倝銇嬨伄鐞嗙敱銇ц〃绀恒仌銈屻仧銇俱伨銇牬鍚
$overlay.on('mousedown', function () {
if (!$overlay.hasClass('is-open')) {
$overlay.off('transitionend').removeClass('is-active');
}
}).on('touchstart', function () {
$globalNav.trigger('mouseleave');
});
// 銉娿儞銈层兗銈枫儳銉冲叏浣撱儧銉愩兗鏅
let overlayTimer = null;
$globalNav.on({
// 銉涖儛銉笺仐銇熴仺銇
mouseenter: function () {
clearTimeout(overlayTimer);
$overlay.off('transitionend').addClass('is-active');
// 銉堛儵銉炽偢銉с兂銇曘仜銈嬨仧銈併伀閬呫倝銇涖倠
overlayTimer = setTimeout(function () {
$overlay.addClass('is-open');
}, 16);
},
// 銉涖儛銉笺亴澶栥倢銇熴仺銇
mouseleave: function () {
clearTimeout(overlayTimer);
// 100ms閬呫倝銇涖仸銉曘偋銉笺儔銈偊銉堛仌銇涖倠
overlayTimer = setTimeout(function () {
$overlay.one('transitionend', function () {
$overlay.removeClass('is-active');
}).removeClass('is-open');
}, 100);
},
});
// 銉夈儹銉冦儣銉€銈︺兂
const dropdownTimers = [];
const $globalNavItem = $('.js-global-nav-item');
$globalNav.on({
// 銉涖儛銉笺仐銇熴仺銇
mouseenter: function () {
const index = $globalNavItem.index(this);
clearTimeout(dropdownTimers[index]);
const $sub = $('.js-global-nav-sub', this);
$sub.off('transitionend').addClass('is-active');
// 銉堛儵銉炽偢銉с兂銇曘仜銈嬨仧銈併伀閬呫倝銇涖倠
dropdownTimers[index] = setTimeout(function () {
$sub.addClass('is-open');
}, 16);
},
// 銉涖儛銉笺亴澶栥倢銇熴仺銇
mouseleave: function () {
const index = $globalNavItem.index(this);
clearTimeout(dropdownTimers[index]);
const $sub = $('.js-global-nav-sub', this);
// 100ms閬呫倝銇涖仸銉曘偋銉笺儔銈偊銉堛仌銇涖倠
dropdownTimers[index] = setTimeout(function () {
$sub.one('transitionend', function () {
$sub.removeClass('is-active');
}).removeClass('is-open');
}, 100);
},
}, '.js-global-nav-item');
// 銈裤儍銉併儑銉愩偆銈广仹銇儭銈儔銉儍銉椼亴闁嬨亱銇亜銇仹銆併儶銉炽偗銈掓姂鍒躲仚銈
let touchFlag = false;
$globalNav.on({
touchstart: function () {
touchFlag = true;
},
click: function (event) {
if (touchFlag) {
touchFlag = false;
event.preventDefault();
}
},
}, '.js-global-nav-item > a:not(.js-global-nav-only)');
/* 銈广優銉涖儕銉撱偛銉笺偡銉с兂 */
const $spNav = $('.js-sp-nav');
const $spMain = $('.js-sp-main');
const $spSubNav = $spMain.show().nextAll();
// 銉°儖銉ャ兗銇枊闁
let spNavTimer = null;
$spToggle.on('click', function () {
clearTimeout(spNavTimer);
if (!$spToggle.hasClass('is-open')) {
// 闁嬨亜銇熸檪
GLOBAL.fixBody(true);
$spToggle.addClass('is-open');
$spNav.off('transitionend').addClass('is-active');
// 銇欍仹銇粬銇倐銇亴闁嬨亱銈屻仸銇勩倠鍫村悎銇枆銇樸倠
if ($langToggle.hasClass('is-open')) {
GLOBAL.isKeepFix = true;
$langToggle[0].click();
}
if ($globalToggle.hasClass('is-open')) {
GLOBAL.isKeepFix = true;
$globalToggle[0].click();
}
// 銉堛儵銉炽偢銉с兂銇曘仜銈嬨仧銈併伀閬呫倝銇涖倠
spNavTimer = setTimeout(function () {
$spNav.addClass('is-open');
}, 16);
} else {
// 闁夈仒銇熸檪
$spToggle.removeClass('is-open');
$spNav.one('transitionend', function () {
$spNav[0].scrollTop = 0;
$spNav.removeClass('is-active');
$spMain.show();
$spSubNav.filter('.is-active').off('transitionend').removeClass('is-active is-open is-active-float');
GLOBAL.fixBody(false);
}).removeClass('is-open');
}
});
// 銈点儢銉°儖銉ャ兗
let spSubNavTimer = null;
$spNav.on('click', '.js-sp-subnav', function (event) {
event.preventDefault();
clearTimeout(spSubNavTimer);
const num = $(this).data('target');
const $target = $('.js-sp-sub-' + num);
$target.off('transitionend').addClass('is-active is-active-float');
// 銉堛儵銉炽偢銉с兂銇曘仜銈嬨仧銈併伀閬呫倝銇涖倠
spSubNavTimer = setTimeout(function () {
$spMain.hide();
$target.removeClass('is-active-float').addClass('is-open');
}, 16);
});
$spNav.on('click', '.js-sp-back', function (event) {
event.preventDefault();
clearTimeout(spSubNavTimer);
$spSubNav.filter('.is-active').one('transitionend', function () {
$(this).removeClass('is-active is-active-float');
}).addClass('is-active-float').removeClass('is-open');
$spMain.show();
});
}
/* 鏂囧瓧銈点偆銈 */
{
const $root = $('html');
const $textNormal = $('.js-text-size__normal');
const $textLarge = $('.js-text-size__large');
let isInit = false;
$textNormal.on('click', function (event) {
event.preventDefault();
if ($textNormal.hasClass('is-current')) { return; }
$root.removeClass('is-text-large');
$textNormal.addClass('is-current');
$textLarge.removeClass('is-current');
// cookie鍓婇櫎
Cookies.remove('text_size');
});
$textLarge.on('click', function (event) {
event.preventDefault();
if ($textLarge.hasClass('is-current')) { return; }
$root.addClass('is-text-large');
$textNormal.removeClass('is-current');
$textLarge.addClass('is-current');
// cookie銈汇儍銉
isInit && Cookies.set('text_size', 'l', { expires: 365, path: '/' });
});
// cookie銉併偋銉冦偗
if (Cookies.get('text_size') === 'l') {
$textLarge[0].click();
} else {
$textNormal.addClass('is-current');
}
isInit = true;
}
/* 銉樸儍銉€銉机 銈广優銉涚敤瑷€瑾為伕鎶 */
{
const $headerLang = $('.js-header-lang');
let langTimer = null;
$langToggle.on('click', function () {
clearTimeout(langTimer);
if (!$langToggle.hasClass('is-open')) {
// 闁嬨亜銇熸檪
GLOBAL.fixBody(true);
$langToggle.addClass('is-open');
$headerLang.off('transitionend').addClass('is-active');
// 銇欍仹銇粬銇倐銇亴闁嬨亱銈屻仸銇勩倠鍫村悎銇枆銇樸倠
if ($spToggle.hasClass('is-open')) {
GLOBAL.isKeepFix = true;
$spToggle[0].click();
}
if ($globalToggle.hasClass('is-open')) {
GLOBAL.isKeepFix = true;
$globalToggle[0].click();
}
// 銉堛儵銉炽偢銉с兂銇曘仜銈嬨仧銈併伀閬呫倝銇涖倠
langTimer = setTimeout(function () {
$headerLang.addClass('is-open');
}, 16);
} else {
// 闁夈仒銇熸檪
$langToggle.removeClass('is-open');
$headerLang.one('transitionend', function () {
$headerLang.removeClass('is-active');
GLOBAL.fixBody(false);
}).removeClass('is-open');
}
});
}
/* 銉樸儍銉€銉机 銈般儹銉笺儛銉儘銉冦儓銉兗銈 */
{
const $header = $('.js-header');
const $global = $('.js-global');
const $globalBase = $('.js-global-base');
const $globalClose = $('.js-global-close');
// 闁嬨亸
$('.js-global-open').on('click', function () {
// 銇欍仹銇枊銇勩仸銇勩倠鍫村悎銇枆銇樸倠
if ($global.hasClass('is-open')) {
$globalClose[0].click();
return;
}
GLOBAL.fixBody(true);
$header.addClass('is-global-open');
$global.off('transitionend').addClass('is-check');
$globalToggle.addClass('is-open');
// 瑕佺礌銇珮銇曘倰鍙栧緱
const height = $globalBase.outerHeight();
$global.on('transitionend', function (event) {
if (event.target === event.currentTarget) {
$global.off('transitionend').removeClass('is-animated').css({ height: 'auto' });
GLOBAL.sidebar && GLOBAL.sidebar.updateSticky();
}
}).removeClass('is-check').addClass('is-active is-animated');
// 銉堛儵銉炽偢銉с兂銇曘仜銈嬨仧銈併伀閬呫倝銇涖倠
setTimeout(function () {
$global.addClass('is-open').css({ height: height });
}, 16);
});
// 闁夈仒銈
$globalClose.on('click', function () {
if (!$global.hasClass('is-open')) { return; }
$global.addClass('is-animated').css({ height: $globalBase.outerHeight() });
$globalToggle.removeClass('is-open');
setTimeout(function () {
$global.removeClass('is-open').css({ height: '' });
$global.on('transitionend', function (event) {
if (event.target === event.currentTarget) {
$global.off('transitionend').removeClass('is-active is-animated');
$header.removeClass('is-global-open');
window.scrollTo(0, 0);
GLOBAL.fixBody(false);
GLOBAL.sidebar && setTimeout(function () {
GLOBAL.sidebar.updateSticky();
}, 16);
}
});
}, 16);
});
// 銈广優銉涘悜銇戦枊闁
let spGlobalTimer = null;
$globalToggle.on('click', function () {
clearTimeout(spGlobalTimer);
if (!$globalToggle.hasClass('is-open')) {
// 闁嬨亜銇熸檪
GLOBAL.fixBody(true);
$globalToggle.addClass('is-open');
$header.addClass('is-global-open');
$global.off('transitionend').addClass('is-active').css({ height: 'auto' });
// 銇欍仹銇粬銇倐銇亴闁嬨亱銈屻仸銇勩倠鍫村悎銇枆銇樸倠
if ($spToggle.hasClass('is-open')) {
GLOBAL.isKeepFix = true;
$spToggle[0].click();
}
if ($langToggle.hasClass('is-open')) {
GLOBAL.isKeepFix = true;
$langToggle[0].click();
}
// 銉堛儵銉炽偢銉с兂銇曘仜銈嬨仧銈併伀閬呫倝銇涖倠
spGlobalTimer = setTimeout(function () {
$global.addClass('is-open');
}, 16);
} else {
// 闁夈仒銇熸檪
$globalToggle.removeClass('is-open');
$global.one('transitionend', function () {
$global[0].scrollTop = 0;
$header.removeClass('is-global-open');
$global.removeClass('is-active');
GLOBAL.fixBody(false);
}).removeClass('is-open').css({ height: '' });
}
});
}
/* 銉樸儍銉€銉机 銈广偗銉兗銉伀銈堛倠銉樸儍銉€銉煎浐瀹 */
{
const header = $('.js-header')[0];
const $headerFix = $('.js-header-fix');
// 銈广偗銉兗銉洠瑕
let headerTimer = null;
let isFixed = false;
const onScroll = function () {
if (window.pageYOffset <= header.offsetHeight) {
// 銉樸儍銉€銉笺亴瑕嬨亪銈嬩綅缃伄鍫村悎寮峰埗鐨勩伀銈傘仺銇埢銇
$headerFix.off('transitionend').removeClass('is-fixed is-fixed-active is-fixed-slide');
isFixed = false;
} else if (window.pageYOffset > window.innerHeight / 2) {
// 銉樸儍銉€銉煎浐瀹
if (!isFixed) {
clearTimeout(headerTimer);
$headerFix.off('transitionend').addClass('is-fixed').removeClass('is-fixed-slide');
// 銉堛儵銉炽偢銉с兂銇曘仜銈嬨仧銈併伀閬呫倝銇涖倠
headerTimer = setTimeout(function () {
$headerFix.addClass('is-fixed-active');
}, 16);
isFixed = true;
}
} else if (isFixed) {
// 銉樸儍銉€銉煎浐瀹氳В闄
clearTimeout(headerTimer);
$headerFix.on('transitionend', function (event) {
if (event.target === event.currentTarget) {
$headerFix.off('transitionend').removeClass('is-fixed is-fixed-slide');
}
}).addClass('is-fixed-slide').removeClass('is-fixed-active');
isFixed = false;
}
};
window.addEventListener('scroll', onScroll, GLOBAL.passiveOption);
onScroll();
}
/* 銉樸儍銉€銉机 妞滅储銉曘偅銉笺儷銉 */
{
const $textField = $('.l-header-form__input');
const $textFieldSubmit = $('.l-header-form__submit');
//妞滅储銉氥兗銈搞伀銈搞儯銉炽儣銇欍倠
$textFieldSubmit.click(function(e){
e.stopPropagation();
e.preventDefault();
var inputText = $textField.val();
jumpSearchPage(inputText);
});
$textField.keypress( function ( e ) {
if ( e.which == 13 ) {
var inputText = $(this).val();
jumpSearchPage(inputText);
return false;
}
})
}
/* 銉曘儍銈裤兗: 銉氥兗銈搞儓銉冦儣 */
{
// 銈广偗銉兗銉绱
const $scElem = $(document.scrollingElement || document.documentElement);
const $pagetop = $('.js-pagetop');
const bottomTrigger = $('.js-pagetop-trigger')[0];
$pagetop.find('a').on('click', function () {
$scElem.animate({ scrollTop: 0 }, 400);
});
// 銈广偗銉兗銉洠瑕
const onScroll = function () {
const isHidden = window.pageYOffset < window.innerHeight * 2 / 3;
$pagetop.toggleClass('is-hidden', isHidden);
const isStatic = bottomTrigger.getBoundingClientRect().top < window.innerHeight;
$pagetop.toggleClass('is-static', isStatic);
};
window.addEventListener('scroll', onScroll, GLOBAL.passiveOption);
onScroll();
}
/* 銈点偆銉夈儛銉艰拷寰 */
{
const stickyAside = $('.js-sticky-aside')[0];
if ( stickyAside !== void(0) ) {
$(window).on('load resize',function(e){
let minHeight = stickyAside.clientHeight;
$('.l-wrap__main')[0].style.minHeight = minHeight + 'px';
})
}
if (stickyAside && typeof StickySidebar === 'function') {
$('.l-wrap__aside').css({'position':"absolute"});
GLOBAL.sidebar = new StickySidebar(stickyAside, {
topSpacing: 58,
bottomSpacing: 20,
});
window.addEventListener('load', function () {
GLOBAL.sidebar.updateSticky();
});
}
}
/* location.hash銈掍即銇嗛伔绉 */
{
$( window ).on( 'load', function() {
const id = location.hash;
const speed = 0;
const headerHight = $('.js-header-fix').height();
if ( '' != id ) {
if(id.indexOf('005.marsflag.com') < 1){
const pos = $( id ).offset().top - headerHight;
$( 'html' ).animate({ scrollTop: pos }, speed );
}
}
$('body').addClass('is-loded');
});
}
/* 銈兂銈兗銉兂銈伄琛ㄧず浣嶇疆瑾挎暣 */
{
const headerHight = $('.js-header-fix').height();
$('a[href^="#"]:not(.p-news-release__tab)').click(function() {
const speed = 300;
const href= $(this).attr("href");
const target = $(href == "#" || href == "" ? 'html' : href);
const position = target.offset().top-headerHight;
$('body,html').animate({scrollTop:position}, speed, 'swing')
return false;
});
}
/* a銈裤偘鍐呫伄銈儶銉冦偗鍒跺尽 */
{
$('[data-href]').on('click',function(e){
e.stopPropagation();
e.preventDefault();
var pageUrl = $(this).attr('data-href');
if($(this).attr('target') === "_blank") {
window.open(pageUrl);
}
else{
window.location.href = pageUrl;
}
});
}
/* 姹庣敤銈偝銉笺儑銈c偑銉 */
{
const $toggle = $('.js-accordion');
$toggle.on('click', function () {
const $this = $(this);
const $body = $this.parent().find('.js-accordion-body');
$this.toggleClass('is-open');
$body.stop();
if ($this.hasClass('is-open')) {
$body.slideDown(300);
} else {
$body.slideUp(300);
}
});
}
/* 姹庣敤銉涖儛銉笺偄銈偡銉с兂 */
{
// data-parent="n" 灞炴€с仹n鍊嬩笂銇Κ瑕佺礌銇 .is-hover 銈儵銈瑰悕銈掋仱銇戙倠浜嬨亴銇с亶銇俱仚
$('.js-hover-action').on('mouseenter mouseleave', function (event) {
const $this = $(this);
const isHover = event.type === 'mouseenter';
$this.parents().eq(($this.data('parent') || 1) - 1).toggleClass('is-hover', isHover);
});
}
/* 瑷樹簨銈广儵銈ゃ儉銉 */
{
// 鍓嶅緦銇瑁借绱犮伄鏁
const cloneSpan = 2;
// 銈广儵銈ゃ儔銇墍瑕佹檪闁
const slideDuration = 600;
// 銈兗銉堛偣銉┿偆銉夈伄闁撻殧
const sliderInterval = 5000;
const zeroPad = function (num) { return ('0' + num).slice(-2); };
$('.js-article-slider').each(function () {
const $slider = $(this);
// 銈广儵銈ゃ儉銉兼湰浣
const $list = $slider.find('.js-article-slider__list');
// 銈儶銈搞儕銉伄銈广儵銈ゃ儔瑕佺礌
const $origItems = $list.children();
const slideLength = $origItems.length;
// 銉氥兗銈搞儘銉笺偡銉с兂
const $slidePageWrapper = $slider.find('.js-article-slider__page');
for (let i = 0; i < slideLength; i++) {
const $page = $('