$(function () { //--------------------------------------------- // スムーズスクロール //--------------------------------------------- //#を含むリンクが対象 $('a[href^="#"]').click(function () { var speed = 600, href = $(this).attr("href"), //href="#"ならページトップ(html)へ href="#"以外ならhrefの指定先へ target = $(href == "#" || href == "" ? 'html' : href), position = target.offset().top; $('body,html').animate({ scrollTop: position }, speed, 'swing'); return false; }); //--------------------------------------------- // pagetopボタン スクロールでフェードイン //--------------------------------------------- // 300pxスクロールしたらpagetopボタンを表示する var topBtn = $('#PageTop'); topBtn.hide(); $(window).scroll(function () { if ($(this).scrollTop() > 300) { topBtn.fadeIn(); } else { topBtn.fadeOut(); } return false; }); //--------------------------------------------- // ハンバーガーメニュー //--------------------------------------------- // トグルボタンがクリックされたとき $('.toggle').on('click', function () { $(this).toggleClass('active'); // ボタンに .active クラスの付け外し $('.nav').toggleClass('show'); // ナビゲーションに .show クラスの付け外し }); // メニュー内リンクをクリックしたらナビを閉じる(必要なら) $('.header_nav a').on('click', function () { $('.nav').removeClass('show'); $('.toggle').removeClass('active'); }); }); //--------------------------------------------- // スクロールで要素を表示 //--------------------------------------------- function showElementAnimation() { var element = document.getElementsByClassName('js-animation'); if (!element) return; // 要素がなかったら処理をキャンセル var showTiming = window.innerHeight > 768 ? 200 : 40; // 要素が出てくるタイミングはここで調整 var scrollY = window.pageYOffset; var windowH = window.innerHeight; for (var i = 0; i < element.length; i++) { var elemClientRect = element[i].getBoundingClientRect(); var elemY = scrollY + elemClientRect.top; if (scrollY + windowH - showTiming > elemY) { element[i].classList.add('is-show'); } else if (scrollY + windowH < elemY) { // 上にスクロールして再度非表示にする場合はこちらを記述 element[i].classList.remove('is-show'); } } } showElementAnimation(); window.addEventListener('scroll', showElementAnimation);