Files
sporthunde_nordeifel/script.js

36 lines
1.3 KiB
JavaScript

document.addEventListener('DOMContentLoaded', () => {
// Intersection Observer for fade-in animations
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('visible');
}
});
}, { threshold: 0.15 });
document.querySelectorAll('.fade-in').forEach(el => observer.observe(el));
// Logo 3D effect on mousemove
const logo = document.querySelector('.logo-small');
if(logo && window.matchMedia("(pointer: fine)").matches) {
document.addEventListener('mousemove', (e) => {
const x = e.clientX;
const y = e.clientY;
const centerX = window.innerWidth / 2;
const centerY = window.innerHeight / 2;
// Calculate rotation (inverted for natural feel)
const rotateX = ((y - centerY) / centerY) * -15;
const rotateY = ((x - centerX) / centerX) * 15;
logo.style.transform = `scale(1.08) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;
});
document.addEventListener('mouseleave', () => {
logo.style.transform = `scale(1) rotateX(0deg) rotateY(0deg)`;
});
}
});