Abmacode12's picture
Create a non-profit organization website with mission statement hero, our impact statistics, current campaigns, donation form with amounts, volunteer opportunities, success stories, upcoming events, and newsletter signup.
4abcd02 verified
document.addEventListener('DOMContentLoaded', function() {
// Animate impact numbers
const animateNumbers = () => {
const counters = document.querySelectorAll('#lives-changed, #volunteers, #countries, #projects');
const speed = 200;
counters.forEach(counter => {
const target = +counter.innerText.replace('+', '');
const increment = target / speed;
let current = 0;
const updateCount = () => {
current += increment;
if (current < target) {
counter.innerText = Math.floor(current) + (counter.id === 'lives-changed' || counter.id === 'volunteers' ? '+' : '');
setTimeout(updateCount, 1);
} else {
counter.innerText = target + (counter.id === 'lives-changed' || counter.id === 'volunteers' ? '+' : '');
}
};
updateCount();
counter.classList.add('count-up');
});
};
// Intersection Observer for animations
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
if (entry.target.id === 'lives-changed') {
animateNumbers();
}
entry.target.classList.add('animate-fadeIn');
}
});
}, { threshold: 0.1 });
// Observe elements
document.querySelectorAll('#lives-changed, #volunteers, #countries, #projects').forEach(el => {
observer.observe(el);
});
// Donation amount selection
const donationAmounts = document.querySelectorAll('.donation-amount');
donationAmounts.forEach(button => {
button.addEventListener('click', function() {
donationAmounts.forEach(btn => {
btn.classList.remove('bg-red-100', 'border-red-500', 'text-red-700');
btn.classList.add('bg-white', 'border-gray-300');
});
this.classList.remove('bg-white', 'border-gray-300');
this.classList.add('bg-red-100', 'border-red-500', 'text-red-700');
document.getElementById('custom-amount').value = this.textContent.replace('$', '');
});
});
// Form submission
const donationForm = document.getElementById('donation-form');
if (donationForm) {
donationForm.addEventListener('submit', function(e) {
e.preventDefault();
// Here you would typically handle the form submission
alert('Thank you for your donation! A confirmation has been sent to your email.');
this.reset();
});
}
// Initialize feather icons
feather.replace();
});