$(function(){ 'use strict'; jQuery.fx.interval = 24; // アンカースクロール function anchorScroll( selector ){ setTimeout(function(){ $(selector).each(function(){ var top = $(this).offset().top - $('#sp_header > ul').outerHeight(); $('html,body').animate({ scrollTop: top }, 300); return false; }); },400); } $(window).on('hashchange', function(){ anchorScroll(location.hash); }).trigger('hashchange'); // ハンバーガーメニュー $('header > ul .gmenu').pulldownMenu({ speed: 450, $overlay: $('.menu-overlay'), after:function(){ // 店舗一覧隠す $('nav.shops').stop().css({ display:'none' }); $('header .shops').removeClass('show'); // お気に入り隠す $('.favoriteBox').stop().css({ display:'none' }); $('.userInfo .fav').removeClass('show'); // 最近見たツアー隠す $('.recentTours').stop().css({ display:'none' }); $('.userInfo .recent').removeClass('show'); }, // 最近見たツアー・お気に入りをオーバーレイの裏にする beforeShow:function(){ $('.userInfo').addClass('underOverlay'); $(window).trigger('bodyFreeze'); }, afterHide:function(){ $('.userInfo').removeClass('underOverlay'); $(window).trigger('bodyRelease'); } }); // 店舗一覧メニュー $('header > ul .shops').pulldownMenu({ $overlay: $('.menu-overlay'), after:function(){ // ハンバーガーメニュー隠す $('nav.gmenu').stop().css({ display:'none' }); $('header .gmenu').removeClass('show'); // お気に入り隠す $('.favoriteBox').stop().css({ display:'none' }); $('.userInfo .fav').removeClass('show'); // 最近見たツアー隠す $('.recentTours').stop().css({ display:'none' }); $('.userInfo .recent').removeClass('show'); }, // 最近見たツアー・お気に入りをオーバーレイの裏にする beforeShow:function(){ $('.userInfo').addClass('underOverlay'); $(window).trigger('bodyFreeze'); }, afterHide:function(){ $('.userInfo').removeClass('underOverlay'); $(window).trigger('bodyRelease'); } }); // アコーディオン開閉 $('.accordion').on('click',function(){ var $this = $(this); if( $this.hasClass('close') ){ if( $this.hasClass('jsScroll') ){ // スクロールしてから var scrTop = $this.offset().top; var delay = Math.abs(scrTop - $(window).scrollTop()); $('html,body').animate({ scrollTop: scrTop }, delay); // アコーディオン開く setTimeout(function(){ $this.removeClass('close').next().stop().slideDown(450); }, delay); } else $this.removeClass('close').next().stop().slideDown(450); } else{ $this.next().stop().slideUp(450,function(){ $this.addClass('close'); }); } }); $('.accClose').on('click',function(){ var $accordion = $(this).parent().prev(); if( $accordion.hasClass('accordion') ) $accordion.trigger('click'); }); // 固定フッタ // スクロール100超えたら表示 //$('footer .fixed').each(function(){ // var $fixed = $(this); // $(window).scroll(function(){ // if( $(this).scrollTop() > 100 ){ // $fixed.addClass('show'); // }else{ // $fixed.removeClass('show'); // } // }); //}); // モーダル表示中bodyのスクロールを止めるイベント $(window) .on('bodyFreeze',function(){ if( $('body').css('position') === 'fixed' ) return; var scrTop = $(window).scrollTop(); $('body').css({ position:'fixed', width:'100%', top:-scrTop }).data('scrTop', scrTop); }) .on('bodyRelease',function(){ if( $('body').css('position') !== 'fixed' ) return; var scrTop = $('body').css({ position:'', width:'', top:'' }).data('scrTop'); $(window).scrollTop(scrTop); }); // グローバルメニュー類の枠ボックス高さ調整 $(window).on('load',function(){ $(window).on('resize.gmenus',function(){ var maxH = window.innerHeight - $('header > ul').outerHeight(); $('header > nav').css({ maxHeight: maxH }); }).trigger('resize.gmenus'); }); });