//--------------------------------------------- // ローディングアニメ //--------------------------------------------- document.addEventListener('DOMContentLoaded', function () { const testMode = false; const shownToday = localStorage.getItem('loaderShownDate'); const today = new Date().toDateString(); if (!testMode && shownToday === today) { document.getElementById('loading-screen').style.display = 'none'; } else { if (!testMode) { localStorage.setItem('loaderShownDate', today); } setTimeout(() => { document.getElementById('loading-screen').classList.add('fade-out'); setTimeout(() => { document.getElementById('loading-screen').remove(); }, 500); }, 1600); } }); $(function() { //--------------------------------------------- // ハンバーガーメニュー開閉 //--------------------------------------------- $(document).ready(function() { $(".toggle").click(function() { $(this).toggleClass("active"); // ボタンのアイコンをアクティブに切り替える $(".nav").toggleClass("show"); // サイドバー(メニュー)の表示・非表示を切り替える }); //ページ内リンククリック時にハンバーガーメニューを閉じる $('.nav a[href]').on('click', function() { $('.toggle').trigger('click'); }); }); //--------------------------------------------- // SP閲覧時のみ電話番号にリンクを付ける //--------------------------------------------- var ua = navigator.userAgent; if(ua.indexOf('iPhone') > 0 || ua.indexOf('Android') > 0){ $('.tel-link').each(function(){ var str = $(this).text(); $(this).html($('').attr('href', 'tel:' + str.replace(/-/g, '')).append(str + '')); }); } //--------------------------------------------- // 外部リンクを別ウィンドウで開く //--------------------------------------------- $('a[href^=https]').not('[href*="'+location.hostname+'"]').attr('target', '_blank'); $('a[href^=http]').not('[href*="'+location.hostname+'"]').attr('target', '_blank'); //--------------------------------------------- // スムーズスクロール //--------------------------------------------- //#を含むリンクが対象 $('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(); } }); //--------------------------------------------- // 企業/自治体のタブ切り替え //--------------------------------------------- const tabs = document.querySelectorAll('.audience-tab'); const panels = { company: document.getElementById('panel-company'), gov: document.getElementById('panel-gov') }; function setActive(target) { // target: 'company' | 'gov' // タブの切り替え tabs.forEach(btn => { const isTarget = btn.dataset.target === target; btn.classList.toggle('is-active', isTarget); btn.setAttribute('aria-selected', String(isTarget)); }); // パネルの切り替え(必ず一方だけ表示) Object.entries(panels).forEach(([key, panel]) => { const active = key === target; panel.hidden = !active; // hidden属性で非表示 panel.classList.toggle('is-active', active); }); // URLハッシュと保存 const hash = target === 'gov' ? '#gov' : '#company'; if (location.hash !== hash) history.replaceState(null, '', hash); try { localStorage.setItem('audienceTab', target); } catch (e) {} } // クリック tabs.forEach(btn => btn.addEventListener('click', () => setActive(btn.dataset.target)) ); // キーボード(左右で移動) document.querySelector('.audience-tabs').addEventListener('keydown', e => { const order = Array.from(tabs); const idx = order.indexOf(document.activeElement); if (e.key === 'ArrowRight') { e.preventDefault(); (order[idx + 1] || order[0]).focus(); } if (e.key === 'ArrowLeft') { e.preventDefault(); (order[idx - 1] || order[order.length - 1]).focus(); } if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); const t = document.activeElement.dataset.target; if (t) setActive(t); } }); //--------------------------------------------- // スライダー //--------------------------------------------- const initial = (location.hash === '#gov' && 'gov') || (location.hash === '#company' && 'company') || localStorage.getItem('audienceTab') || 'company'; setActive(initial); $('#Mainvisual.slider').slick({ autoplay: true, autoplaySpeed: 3000, dots: true, arrows: true, fade: false, pauseOnHover: false }); }); //--------------------------------------------- // スクロールで要素を表示 //--------------------------------------------- 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 elemY) { element[i].classList.add('is-show'); } else if(scrollY + windowH < elemY) { // 上にスクロールして再度非表示にする場合はこちらを記述 element[i].classList.remove('is-show'); } } } showElementAnimation(); window.addEventListener('scroll', showElementAnimation);