📚 الأنشطة (1-10)
💪 التمارين (11-20)

✨ جميع الأنشطة

`; } function previousActivity() { if (currentActivity > 1) { goToActivity(currentActivity - 1); } } function nextActivity() { if (currentActivity < totalActivities) { goToActivity(currentActivity + 1); } } function completeActivity() { if (!completedActivities.includes(currentActivity)) { completedActivities.push(currentActivity); // Animation de celebration avec des particules createCelebrationEffect(); // Met à jour l'interface avec délai pour l'effet setTimeout(() => { generateProgressBar(); generateActivityMenu(); saveProgress(); }, 500); } } // Effet de célébration artistique function createCelebrationEffect() { const colors = ['#3498db', '#28a745', '#ffc107', '#dc3545', '#764ba2']; for (let i = 0; i < 15; i++) { setTimeout(() => { const particle = document.createElement('div'); particle.style.cssText = ` position: fixed; width: 8px; height: 8px; background: ${colors[Math.floor(Math.random() * colors.length)]}; border-radius: 50%; pointer-events: none; z-index: 9999; left: ${Math.random() * window.innerWidth}px; top: ${Math.random() * window.innerHeight}px; animation: celebration 2s ease-out forwards; `; document.body.appendChild(particle); setTimeout(() => { particle.remove(); }, 2000); }, i * 50); } } // Animation de célébration const celebrationKeyframes = ` @keyframes celebration { 0% { transform: scale(0) rotate(0deg); opacity: 1; } 50% { transform: scale(1.5) rotate(180deg); opacity: 1; } 100% { transform: scale(0) rotate(360deg); opacity: 0; } } `; // Ajoute les keyframes au document const styleSheet = document.createElement('style'); styleSheet.textContent = celebrationKeyframes; document.head.appendChild(styleSheet); // Fonctions globales accessibles depuis les fichiers d'activités window.markActivityComplete = function() { completeActivity(); }; window.goToNextActivity = function() { nextActivity(); }; window.goToPrevActivity = function() { previousActivity(); }; // Menu hamburger function toggleMenu() { const menuToggle = document.getElementById('menuToggle'); const activityMenu = document.getElementById('activityMenu'); const menuOverlay = document.getElementById('menuOverlay'); menuToggle.classList.toggle('active'); activityMenu.classList.toggle('active'); menuOverlay.classList.toggle('active'); } function closeMenu() { const menuToggle = document.getElementById('menuToggle'); const activityMenu = document.getElementById('activityMenu'); const menuOverlay = document.getElementById('menuOverlay'); menuToggle.classList.remove('active'); activityMenu.classList.remove('active'); menuOverlay.classList.remove('active'); } // Gestion des touches clavier document.addEventListener('keydown', function(e) { if (e.key === 'ArrowLeft' || e.key === 'ArrowUp') { previousActivity(); } else if (e.key === 'ArrowRight' || e.key === 'ArrowDown') { nextActivity(); } else if (e.key === 'Escape') { closeMenu(); } }); // Sauvegarde de la progression function saveProgress() { localStorage.setItem('completedActivities', JSON.stringify(completedActivities)); localStorage.setItem('currentActivity', currentActivity); } function loadProgress() { // Réinitialise la progression - supprime les données sauvegardées localStorage.removeItem('completedActivities'); localStorage.removeItem('currentActivity'); // Repart avec une progression vierge completedActivities = []; currentActivity = 1; } // Initialisation au chargement init();