File size: 1,486 Bytes
e3bfc35 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
document.addEventListener('DOMContentLoaded', function() {
// Initialize GSAP animations for graffiti elements
const graffitiElements = document.querySelectorAll('.graffiti-element');
graffitiElements.forEach(element => {
gsap.fromTo(element,
{ opacity: 0, y: 50 },
{
opacity: 0.5,
y: 0,
duration: 1,
ease: "power2.out",
scrollTrigger: {
trigger: element,
start: "top 80%",
toggleActions: "play none none none",
onEnter: () => element.classList.add('active')
}
}
);
});
// Animate feature cards on scroll
gsap.utils.toArray('.feature-card').forEach(card => {
gsap.fromTo(card,
{ opacity: 0, y: 30 },
{
opacity: 1,
y: 0,
duration: 0.8,
scrollTrigger: {
trigger: card,
start: "top 80%"
}
}
);
});
// Smooth scrolling for anchor links
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function(e) {
e.preventDefault();
document.querySelector(this.getAttribute('href')).scrollIntoView({
behavior: 'smooth'
});
});
});
}); |