File size: 1,421 Bytes
8d61412 | 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 |
// Animation on scroll
function animateOnScroll() {
const elements = document.querySelectorAll('.fade-in, .slide-in');
elements.forEach(el => {
const rect = el.getBoundingClientRect();
if (rect.top < window.innerHeight - 100) {
el.style.opacity = '1';
el.style.transform = 'translateY(0)';
}
});
}
// Initialize scroll animations
document.addEventListener('DOMContentLoaded', () => {
window.addEventListener('scroll', animateOnScroll);
animateOnScroll(); // Run once on load
});
// Shared utility functions
function formatDate(dateString) {
const options = { year: 'numeric', month: 'short', day: 'numeric' };
return new Date(dateString).toLocaleDateString('ar-EG', options);
}
function copyToClipboard(text) {
navigator.clipboard.writeText(text).then(() => {
const toast = document.querySelector('toast-notification');
toast.show(`تم نسخ: ${text}`, 'success');
}).catch(err => {
const toast = document.querySelector('toast-notification');
toast.show('فشل النسخ!', 'error');
});
}
// Initialize tooltips
document.addEventListener('DOMContentLoaded', () => {
const tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
tooltipTriggerList.map(function (tooltipTriggerEl) {
return new bootstrap.Tooltip(tooltipTriggerEl);
});
}); |