blog

/* Website Magic - Global JS Einfuegen: Divi > Theme Options > Integration > Body (Ende) Stand: 2026-10 */ (function () { /* 1. SCROLL-REVEAL Klasse "wm-einblenden" am Divi-Modul eintragen. Das Element blendet sich sanft ein, wenn es sichtbar wird. */ function initReveal() { var elems = document.querySelectorAll('.wm-einblenden'); if (!elems.length) return; if (!('IntersectionObserver' in window)) { for (var i = 0; i < elems.length; i++) { elems[i].classList.add('sichtbar'); } return; } var beobachter = new IntersectionObserver(function (eintraege) { for (var j = 0; j < eintraege.length; j++) { if (eintraege[j].isIntersecting) { eintraege[j].target.classList.add('sichtbar'); beobachter.unobserve(eintraege[j].target); } } }, { threshold: 0.12, rootMargin: '0px 0px -48px 0px' }); for (var k = 0; k < elems.length; k++) { beobachter.observe(elems[k]); } } /* 2. SMOOTH SCROLL Anker-Links (#pakete, #ablauf usw.) scrollen sanft. */ function initSmoothScroll() { document.addEventListener('click', function (e) { var link = e.target.closest('a[href^="#"]'); if (!link) return; var zielId = link.getAttribute('href').slice(1); if (!zielId) return; var ziel = document.getElementById(zielId); if (!ziel) return; e.preventDefault(); var abstand = ziel.getBoundingClientRect().top + window.pageYOffset - 80; window.scrollTo({ top: abstand, behavior: 'smooth' }); }); } /* 3. HEADER-UEBERGANG Der Divi-Header wird beim Scrollen dunkler. */ function initHeader() { var header = document.querySelector('#main-header, .et-fixed-header'); if (!header) return; var letzterScroll = 0; window.addEventListener('scroll', function () { var y = window.pageYOffset; if (y > 60) { header.classList.add('wm-header-aktiv'); } else { header.classList.remove('wm-header-aktiv'); } if (y > letzterScroll && y > 120) { header.classList.add('wm-header-oben'); } else { header.classList.remove('wm-header-oben'); } letzterScroll = y; }, { passive: true }); } /* CSS fuer den Header-Zustand */ function injectHeaderCSS() { var stil = document.createElement('style'); stil.textContent = '.wm-header-aktiv { background: rgba(31,14,24,0.97) !important; backdrop-filter: blur(12px); }'; document.head.appendChild(stil); } /* INIT */ function init() { injectHeaderCSS(); initReveal(); initSmoothScroll(); initHeader(); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } }());