//---------------------------------------------
// ローディングアニメ
//---------------------------------------------
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);