//================================================================== // common //================================================================== // linkAutoBlank $('a[href^=http]') .not('[href*="' + location.hostname + '"]') .attr({ target: "_blank" }).attr({ rel: "noopener nofollow" }); // page-link $('a[href^="#"]').on('click', function() { var href = $(this).attr("href"); var target = $(href == "#" || href == "" ? 'html' : href); if (href == "#") { var position = target.offset().top; } else { var position = target.offset().top - 50; } $("html, body").animate({ scrollTop: position }, 1000, "swing"); return false; }); //================================================================== // load //================================================================== // ref-flag var ref = document.referrer; var hereHost = window.location.hostname; var herePath = hereHost + window.location.pathname; var sStr = "^https?://" + hereHost; var rExp = new RegExp(sStr, "i"); // 読み込み時のLoading最低表示時間 if (ref.match(rExp)) { //同ドメイン var refFlag = 1; var refFlagTime = 0; } else { //外部サイト var refFlag = 0; var refFlagTime = 2400; } // Load var root = document.documentElement; document.body.onload = function() { setTimeout(function() { $('.container').show(); document.body.style.minHeight = $(window).height() + "px"; root.style.setProperty("--main-height", $(window).height() + "px"); document.getElementById("loading").classList.add("loaded"); }, refFlagTime); }; // LoadingText $(function() { var container = $(".js-loading-text"); var content = container.html(); var text = $.trim(content); var newHtml = ""; var i = 0; text.split("").forEach(function(v) { newHtml += '' + v + '' + "\n"; i++; }); container.html(newHtml); setInterval(() => { container.toggleClass('-visible'); }, 1500); }); //================================================================== // spNav //================================================================== $('.js-spNav-btn').on('click', function() { $(this).toggleClass("open"); $('.js-spNav').fadeToggle(); }); $('.js-spNav a').on('click', function() { $('.js-spNav-btn').toggleClass("open"); $('.js-spNav').fadeToggle(); }); //================================================================== // form //================================================================== // btn enable $('#confirm_button').prop('disabled', true); $('#agree').on('click', function() { if ($(this).prop('checked') == false) { $('#confirm_button').prop('disabled', true); } else { $('#confirm_button').prop('disabled', false); } }); // check message // var form = document.querySelector('.entryForm'); // var submitButton = document.querySelector('.submit-btn'); // submitButton.addEventListener('click', function(e) { // var invalids = form.querySelectorAll(':invalid'); // if (0 < invalids.length) { // e.preventDefault(); // for (var i = 0; i < invalids.length; i++) { // (function(idx) { // var invalid = invalids[idx]; // var errorMessage = invalid.parentNode.querySelector('.error-message'); // errorMessage.innerText = invalid.validationMessage; // errorMessage.classList.add('-show'); // invalid.addEventListener('change', function f() { // this.removeEventListener('change', f); // errorMessage.classList.remove('-show'); // }); // })(i); // } // $("html, body").animate({ // scrollTop: $('#enq_form').offset().top // }, 100, "swing"); // } // }); // forgetIdModal $('.js-forgetIdModal-openBtn').on('click', function () { var parent = $(this).parent().parent().parent('.nav__item'); if (parent.hasClass('--pc')) { $('.forgetIdModal .--pc').show(); $('.forgetIdModal .--sp').hide(); $('.forgetIdModal .--app').hide(); } else if (parent.hasClass('--sp')) { $('.forgetIdModal .--pc').hide(); $('.forgetIdModal .--sp').show(); $('.forgetIdModal .--app').hide(); } else if (parent.hasClass('--app')) { $('.forgetIdModal .--pc').hide(); $('.forgetIdModal .--sp').hide(); $('.forgetIdModal .--app').show(); } else if ($(this).hasClass('--both')) { $('.forgetIdModal .--pc').show(); $('.forgetIdModal .--sp').show(); $('.forgetIdModal .--app').hide(); } $('.js-forgetIdModal').fadeToggle(); }); $('.js-forgetIdModal-closeBtn').on('click', function () { $('.js-forgetIdModal').fadeToggle(); }); //================================================================== // playGameModal //================================================================== $(function() { var scrollPosition; $(".modalOpner").on("click", function() { scrollPosition = $(window).scrollTop(); $('body').addClass('fixed').css({ 'top': -scrollPosition }); }); $(".modalCloser").on("click", function() { $('body').removeClass('fixed').css({ 'top': 0 }); window.scrollTo(0, scrollPosition); }); $('.js-playGameModal-openBtn').on('click', function() { $('.js-playGameModal').fadeToggle(); scrollPosition = $(window).scrollTop(); $('body').addClass('fixed').css({ 'top': -scrollPosition }); }); $('.js-playGameModal-closeBtn').on('click', function() { $('.js-playGameModal').fadeToggle(); $('body').removeClass('fixed').css({ 'top': 0 }); window.scrollTo(0, scrollPosition); }); }); //================================================================== // accordion //================================================================== $('.js-accordion-btn').on('click', function() { $(this).next().slideToggle(300); $(this).toggleClass("open"); }); $('[name="howto-01"]:radio').change(function() { if ($('[id="howto-01-01"]').prop('checked')) { $('.js-howto-sp,.js-howto-app').fadeOut(); $('.js-howto-pc').fadeIn(); } else if ($('[id="howto-01-02"]').prop('checked')) { $('.js-howto-pc,.js-howto-app').fadeOut(); $('.js-howto-sp').fadeIn(); } else if ($('[id="howto-01-03"]').prop('checked')) { $('.js-howto-pc,.js-howto-sp').fadeOut(); $('.js-howto-app').fadeIn(); } $('.js-flow-02').slideDown(300); $("html, body").delay(800).animate({ scrollTop: $('.js-flow-02').offset().top - 50 }, 300, "swing"); }); //================================================================== // firework //================================================================== // ランダム関数 const randRange = (min, max) => Math.floor(Math.random() * (max - min + 1) + min); // 要素を取得 const outer = $('.sectionBg__firework'); const inner_html = '
'; const inner = $(inner_html); // 定義 var fireworkSectionCount = 1; const fireworkSectionItem = 3; // 花火セクション数 const fireworkNumMin = 1; //花火ナンバー最小 const fireworkNumMax = 3; //花火ナンバー最大 const fireworkSizeMin = 200; //花火サイズ最小 const fireworkSizeMax = 800; //花火サイズ最大 const fireworkIntervalTimeSetting = 1000; //花火生成インターバルタイム(1セクションあたり) const fireworkIntervalTime = (fireworkIntervalTimeSetting / fireworkSectionItem); var fireworkLastTime = new Date().getTime(); function firework() { var currentTime = new Date().getTime(); //経過時刻を取得 if (currentTime - fireworkLastTime > 980) { //バックグラウンドは実行しない fireworkLastTime = currentTime; return; } fireworkLastTime = currentTime; var num = fireworkSectionCount % fireworkSectionItem; fireworkSectionCount++; //innerを複製 var clone = inner[0].cloneNode(true); //アニメーション終了時に削除 clone.children[0].addEventListener("animationend", function() { clone.remove(); }); //各属性値をランダムに生成 var x = randRange(0, 10) + "%"; var y = Math.floor(Math.random() * 100) + "%"; var fireworkSize = randRange(fireworkSizeMin, fireworkSizeMax) + "px"; var fireworkNum = randRange(fireworkNumMin, fireworkNumMax); //属性をセット $(clone).children().addClass("firework-0" + fireworkNum); $(clone).css("top", y); if (Math.floor(Math.random() * 2 + 1) == 1) { // 2択ランダム $(clone).css("left", x); } else { $(clone).css("right", x); } $(clone).css("max-width", fireworkSize); $(clone).css("max-height", fireworkSize); //outerに追加 outer[num].appendChild(clone); } //定期実行 setInterval(firework, fireworkIntervalTime); //================================================================== // goblin //================================================================== // 妖怪リスト const goblinList = ["aburasumasi", "amabie", "hitotumekozou", "kamehime", "kappa", "kasabake", "kawauso", "kijimuna-", "minntuti", "namahage", "oni_aka", "seko", "si-sa-", "tenngu", "yobuko", "yukionnna"] // 妖怪画像パス const goblinImgPath = "./assets/img/goblin/"; // シャッフル関数 function shuffle(array) { var n = array.length, t, i; while (n) { i = Math.floor(Math.random() * n--); t = array[n]; array[n] = array[i]; array[i] = t; } return array; } // ランダム化 $(document).ready(function() { var goblinShuffleList = shuffle(goblinList); var i = 0; $(".goblin-item").each(function() { $(this).children('img').attr('src', goblinImgPath + goblinShuffleList[i] + '.png'); ++i; }); }); //================================================================== // ctaFloat //================================================================== // footer表示で遊ぶボタン非表示 $(function() { $('.js-ctaFloat').hide(); var wH = window.innerHeight; //画面の高さを取得 $(document).scroll(function() { var scroll = $(window).scrollTop(); //スクロール値を取得 var footerPos = $('#footer').offset().top; //footerの位置を取得 var wrapPos = $('.wrap').offset().top; //wrapの位置を取得 var btnHeight = $('.js-ctaFloat').height(); //ボタンの高さを取得 if ((scroll + wH) > footerPos) { $('.js-ctaFloat').fadeOut(); } else if ((scroll + wH - btnHeight - 100) > wrapPos) { $('.js-ctaFloat').fadeIn(); } else { $('.js-ctaFloat').fadeOut(); } }); });