document.addEventListener('DOMContentLoaded', function () { const btn = document.getElementById('js-menuBtn'); const nav = document.querySelector('.spring__nav'); const links = document.querySelectorAll('.spring__nav-link'); let scrollY = 0; function openMenu() { scrollY = window.scrollY; nav.classList.add('is-open'); // body を完全に固定(iOS対策) document.body.style.position = 'fixed'; document.body.style.top = `-${scrollY}px`; document.body.style.left = '0'; document.body.style.right = '0'; document.body.style.width = '100%'; } function closeMenu() { nav.classList.remove('is-open'); // body 固定解除 document.body.style.position = ''; document.body.style.top = ''; document.body.style.left = ''; document.body.style.right = ''; document.body.style.width = ''; // 元のスクロール位置へ戻す window.scrollTo(0, scrollY); } btn.addEventListener('click', function () { if (nav.classList.contains('is-open')) { closeMenu(); } else { openMenu(); } }); // メニュー内リンクを押したら閉じる links.forEach(link => { link.addEventListener('click', () => { closeMenu(); }); }); }); ( function( d, w, $ ) { 'use strict'; //イメージマップ /*$(function () { $('img[usemap]').rwdImageMaps(); });*/ /* fixed category nav */ $(function () { $(window).on("scroll", function () { if($(window).scrollTop() > 100) { $('.nav-fixed').addClass('is-show'); } else { $('.nav-fixed').removeClass('is-show'); } }); }); /* modal window and slider */ $(function () { var open = $('.modal-open'), openmap = $('.modal-openmap'), close = $('.modal-close'), closemap = $('.modal-closemap'); // slick 初期化(必要なときだけ) function initSlider($root) { var $slider = $root.find('.items-slider'); if ($slider.length && !$slider.hasClass('slick-initialized')) { $slider.slick({ infinite: true, slidesToShow: 1, slidesToScroll: 1, autoplay: true, autoplaySpeed: 4000, pauseOnHover: false, pauseOnFocus: false, speed: 1000, arrows: false, dots: true, }); } } function initSlidermap($root) { var $slidermap = $root.find('.items-slidermap'); if ($slidermap.length && !$slidermap.hasClass('slick-initialized')) { $slidermap.slick({ infinite: true, slidesToShow: 1, slidesToScroll: 1, autoplay: true, autoplaySpeed: 4000, pauseOnHover: false, pauseOnFocus: false, speed: 1000, arrows: true, dots: true, }); } } // slick 破棄(初期化されている場合のみ) function destroySlider($root) { var $slider = $root.find('.items-slider'); if ($slider.length && $slider.hasClass('slick-initialized')) { $slider.slick('unslick'); } } function destroySlidermap($root) { var $slidermap = $root.find('.items-slidermap'); if ($slidermap.length && $slidermap.hasClass('slick-initialized')) { $slidermap.slick('unslick'); } } // モーダル open(「自分の次にあるcontainer」だけ開く) open.on('click', function (e) { e.preventDefault(); var $container = $(this).next('.modal-container'); $container.addClass('is-active'); $('body').addClass('modal-active'); initSlider($container); }); openmap.on('click', function (e) { e.preventDefault(); var $container = $(this).next('.modal-container'); $container.addClass('is-active'); $('body').addClass('modal-active'); initSlidermap($container); }); // 共通 close(対象モーダルだけ閉じる) function closeModal($container) { $container.removeClass('is-active'); // 他に開いているモーダルが無ければ body を戻す if (!$('.modal-container.is-active').length) { $('body').removeClass('modal-active'); } setTimeout(function () { destroySlider($container); destroySlidermap($container); }, 300); } // closeボタン(container内のボタン想定) close.on('click', function () { closeModal($(this).closest('.modal-container')); }); closemap.on('click', function () { closeModal($(this).closest('.modal-container')); }); // モーダル内リンクで閉じる $('.modal-pagelink').on('click', function () { closeModal($(this).closest('.modal-container')); }); // 外側クリックで閉じる(1本化) $(document).on('click', function (e) { var $active = $(e.target).closest('.modal-container.is-active'); if (!$active.length) return; // .modal-body 内クリックなら何もしない if ($(e.target).closest('.modal-body').length) return; closeModal($active); }); }); /* fadein animation */ $(window).on('load scroll', function(){ $('.scroll-fadein').each(function () { var thisOffset = $(this).offset().top; var scrollPos = $(window).scrollTop(); var wh = $(window).height(); if(scrollPos > thisOffset - wh + (wh / 5)){ $(this).addClass('is-active'); } }); }); $( function() { $('.uraraka-slider').slick({ infinite: true, slidesToShow: 3, slidesToScroll: 1, autoplay: false, pauseOnFocus: false, speed: 1000, arrows: true, dots: false, responsive: [ { breakpoint: 768, settings: { variableWidth: false, slidesToShow: 1, dots: false, }, } ], }); }); //モーダル表示 // var target = $(".js-modal-button-target").data('modal'); // $(".js-modal-button-target").modaal({ // content_source: target // }); // $(".js-modal-button-target").modaal({ // content_source: modal // }); /*$(function () { $('.popup-modal').magnificPopup({ type: 'inline', preloader: false }); //閉じるリンクの設定 $(document).on('click', '.popup-modal-dismiss', function (e) { e.preventDefault(); $.magnificPopup.close(); }); });*/ $(window).scroll(function() { if ($(this).scrollTop() > 100) { $('.b_top').addClass('show') }else{ $('.b_top').removeClass('show') } }); } )( document, window, jQuery );