//ハンバーガーメニューに動きをつける処理の関数 function Hamburger() { document.getElementById('hamburger').classList.toggle('open'); document.getElementById('line1').classList.toggle('line_open_1'); document.getElementById('line2').classList.toggle('line_open_2'); document.getElementById('line3').classList.toggle('line_open_3'); document.getElementById('sp_glonav').classList.toggle('in'); document.getElementById('hamburger_txt').classList.toggle('open'); document.getElementById('hamburger_txt_c').classList.toggle('open'); $('body').toggleClass('glonav_open'); } $(function () { //ハンバーガーメニューをクリックした時に関数実行 document.getElementById('hamburger').addEventListener('click', function () { Hamburger(); }); }); function observeFadeElements() { const targets = document.querySelectorAll('.fade,.fade-in,.fade2'); for (let i = 0; i < targets.length; i++) { if (targets[i].dataset.observed) continue; // すでに監視されている場合はスキップ targets[i].dataset.observed = true; // 監視済みマークをつける let observer = new IntersectionObserver((entries, observer) => { entries.forEach(entry => { if (entry.isIntersecting) { entry.target.classList.add('active'); observer.unobserve(entry.target); } }); }, { rootMargin: "-30px 0px", threshold: 0.2 }); observer.observe(targets[i]); } } // 初期ロード時に適用 document.addEventListener('DOMContentLoaded', () => { observeFadeElements(); // MutationObserverで動的に追加される要素も監視する const observer = new MutationObserver(() => observeFadeElements()); observer.observe(document.body, { childList: true, subtree: true }); }); // Ajaxで要素を追加したら、再度監視を適用 $(document).on('ajaxComplete', function () { observeFadeElements(); });