vhjsoficial1's picture
{
1a2566e verified
Raw
History Blame Contribute Delete
1.7 kB
// Smooth scrolling for anchor links
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function (e) {
e.preventDefault();
const targetId = this.getAttribute('href');
if (targetId === '#') return;
const targetElement = document.querySelector(targetId);
if (targetElement) {
window.scrollTo({
top: targetElement.offsetTop - 80,
behavior: 'smooth'
});
}
});
});
// Sticky navbar functionality
window.addEventListener('scroll', function() {
const navbar = document.querySelector('custom-navbar');
if (window.scrollY > 100) {
navbar.shadowRoot.querySelector('header').classList.add('bg-white', 'shadow-md');
navbar.shadowRoot.querySelector('header').classList.remove('bg-transparent');
} else {
navbar.shadowRoot.querySelector('header').classList.remove('bg-white', 'shadow-md');
navbar.shadowRoot.querySelector('header').classList.add('bg-transparent');
}
});
// Initialize animations when elements come into view
const animateOnScroll = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('animate-fade-in');
animateOnScroll.unobserve(entry.target);
}
});
}, {
threshold: 0.1
});
document.querySelectorAll('.animate-on-scroll').forEach(el => {
animateOnScroll.observe(el);
});
// Mobile menu toggle functionality
document.addEventListener('DOMContentLoaded', function() {
feather.replace();
// You can add more initialization code here
});