/* ========================================== * * Loading * ========================================== */ $(function() { $(".loading").show(); }); $(window).on("load", function() { setTimeout(function() { $(".loading").fadeOut(); }, 500); }); /* ========================================== * * 劇場リスト * ========================================== */ $(function() { const region = $(".theater__region"); region.next().hide(); region.on("click", function() { var thisRegion = $(this); var thisTable = $(this).next(); if (thisTable.is(":hidden")) { thisTable.slideDown(500); thisRegion.addClass("theater__region--open"); } else { thisTable.slideUp(500); thisRegion.removeClass("theater__region--open"); } }); }); /* ========================================== * * スムーススクロール * ========================================== */ $(function() { // スクロールのオフセット値 var offsetY = -80; // スクロールにかかる時間 var time = 500; // ページ内リンクのみを取得 $('a[href^="#"]').click(function() { // 移動先となる要素を取得 var target = $(this.hash); if (!target.length) return; // 移動先となる値 var targetY = target.offset().top + offsetY; // スクロールアニメーション $('html,body').animate({ scrollTop: targetY }, time, 'swing'); // ハッシュ書き換えとく window.history.pushState(null, null, this.hash); // デフォルトの処理はキャンセル return false; }); }); /* ========================================== * * スクロールトップ * ========================================== */ $(function() { //スクロールページトップ表示 var showFlag = false; var topBtn = $('.top_button'); topBtn.css('display', 'none'); var showFlag = false; $(window).scroll(function() { if ($(this).scrollTop() > 100) { if (showFlag == false) { showFlag = true; topBtn.stop().fadeIn("slow"); } } else { if (showFlag) { showFlag = false; topBtn.stop().fadeOut("slow"); } } }); $(".js-pagetop").click(function() { $('body,html').animate({ scrollTop: 0 }, 500, 'swing'); return false; }); }); /* ========================================== * * グローバルナビ * ========================================== */ $(function() { /* グローバルナビ スマホ ------------------------------------------ */ var wW = $(window).innerWidth(); const headerList = $(".header__list"); const drawerButton = $(".header__drawerButton"); isDrawer = false; function menuClose() { headerList.slideUp(); isDrawer = false; } function menuOpen() { headerList.slideDown(); isDrawer = true; } $(window).on('load', function() { var wW = $(window).innerWidth(); if (wW < 900) { menuClose(); } }); drawerButton.on('click', function() { var wW = $(window).innerWidth(); if (wW < 900) { if (isDrawer) { menuClose(); } else { menuOpen(); } } }); $('.header__list a, .header__logo').on('click', function() { var wW = $(window).innerWidth(); if (wW < 900) { menuClose(); } else { menuOpen(); } }); var timer = false; var winWidth = $(window).width(); var winWidth_resized; $(window).on("resize", function() { if (timer !== false) { clearTimeout(timer); } timer = setTimeout(function() { winWidth_resized = $(window).width(); if (winWidth != winWidth_resized) { if (winWidth_resized < 900) { menuClose(); } else { menuOpen(); } } }, 200); }); }); /* ========================================== * * ナビ カレント * ========================================== */ // 現在地をチェックする function currentCheck() { // ナビゲーションのリンクを指定 var navLink = $('.header__list a'); // 各コンテンツのページ上部からの開始位置と終了位置を配列に格納しておく var contentsArr = new Array(); for (var i = 0; i < navLink.length; i++) { // コンテンツのIDを取得 var targetContents = navLink.eq(i).attr('href'); // ページ内リンクでないナビゲーションが含まれている場合は除外する if (targetContents.charAt(0) == '#') { // ページ上部からコンテンツの開始位置までの距離を取得 var targetContentsTop = $(targetContents).offset().top; // ページ上部からコンテンツの終了位置までの距離を取得 var targetContentsBottom = targetContentsTop + $(targetContents).outerHeight(true) - 1; // 配列に格納 contentsArr[i] = [targetContentsTop, targetContentsBottom] } } // 現在のスクロール位置を取得 var windowScrolltop = $(window).scrollTop(); for (var i = 0; i < contentsArr.length; i++) { // 現在のスクロール位置が、配列に格納した開始位置と終了位置の間にあるものを調べる if (contentsArr[i][0] - 200 <= windowScrolltop && contentsArr[i][1] >= windowScrolltop) { // 開始位置と終了位置の間にある場合、ナビゲーションにclass="current"をつける navLink.removeClass('crt'); navLink.eq(i).addClass('crt'); i == contentsArr.length; } }; } $(window).on('load scroll resize', function() { currentCheck(); });