/** * تأثيرات المشهد الرياضي لقالب جنة * AlMashhad Sports Effects for Jannah Theme */ document.addEventListener('DOMContentLoaded', function() { // =============================================== // 1. إضافة تأثير الجسيمات المضيئة للخلفية // =============================================== function createParticles() { const particlesContainer = document.createElement('div'); particlesContainer.id = 'particles-background'; particlesContainer.style.cssText = ` position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 0; overflow: hidden; `; document.body.appendChild(particlesContainer); // إنشاء 50 جسيم مضيء for (let i = 0; i < 50; i++) { const particle = document.createElement('div'); particle.className = 'particle'; particle.style.cssText = ` position: absolute; width: ${Math.random() * 4 + 1}px; height: ${Math.random() * 4 + 1}px; background: radial-gradient(circle, #00FF87 0%, transparent 70%); border-radius: 50%; left: ${Math.random() * 100}%; top: ${Math.random() * 100}%; opacity: ${Math.random() * 0.5 + 0.2}; animation: float ${Math.random() * 20 + 10}s infinite ease-in-out; `; particlesContainer.appendChild(particle); } } // تفعيل الجسيمات createParticles(); // =============================================== // 2. إضافة تأثير التوهج على العناوين عند التمرير // =============================================== const headings = document.querySelectorAll('h1, h2, h3, .post-title, .entry-title'); headings.forEach(heading => { heading.addEventListener('mouseenter', function() { this.style.textShadow = '0 0 20px rgba(0, 255, 135, 0.8)'; this.style.color = '#00FF87'; }); heading.addEventListener('mouseleave', function() { this.style.textShadow = '0 2px 4px rgba(0, 0, 0, 0.3)'; this.style.color = '#FFFFFF'; }); }); // =============================================== // 3. تأثير الظهور التدريجي للعناصر عند التمرير // =============================================== const observerOptions = { threshold: 0.1, rootMargin: '0px 0px -50px 0px' }; const observer = new IntersectionObserver(function(entries) { entries.forEach(entry => { if (entry.isIntersecting) { entry.target.classList.add('fade-in-visible'); entry.target.style.animationDelay = Math.random() * 0.3 + 's'; } }); }, observerOptions); // مراقبة جميع المقالات والويدجات document.querySelectorAll('.post, article, .widget, .tie-post').forEach(element => { element.classList.add('fade-in-element'); observer.observe(element); }); // =============================================== // 4. تأثير موجة على الأزرار عند النقر // =============================================== document.querySelectorAll('button, .button, .tie-button, input[type="submit"]').forEach(button => { button.addEventListener('click', function(e) { const ripple = document.createElement('span'); const rect = this.getBoundingClientRect(); const size = Math.max(rect.width, rect.height); const x = e.clientX - rect.left - size / 2; const y = e.clientY - rect.top - size / 2; ripple.style.cssText = ` position: absolute; border-radius: 50%; background: rgba(255, 255, 255, 0.6); width: ${size}px; height: ${size}px; top: ${y}px; left: ${x}px; animation: rippleEffect 0.6s ease-out; pointer-events: none; `; this.style.position = 'relative'; this.style.overflow = 'hidden'; this.appendChild(ripple); setTimeout(() => ripple.remove(), 600); }); }); // =============================================== // 5. شريط التقدم في القراءة // =============================================== function createReadingProgress() { const progressBar = document.createElement('div'); progressBar.id = 'reading-progress'; progressBar.style.cssText = ` position: fixed; top: 0; left: 0; width: 0%; height: 4px; background: linear-gradient(90deg, #00FF87 0%, #FFD700 100%); z-index: 9999; transition: width 0.2s ease; box-shadow: 0 2px 10px rgba(0, 255, 135, 0.5); `; document.body.appendChild(progressBar); window.addEventListener('scroll', () => { const winScroll = document.body.scrollTop || document.documentElement.scrollTop; const height = document.documentElement.scrollHeight - document.documentElement.clientHeight; const scrolled = (winScroll / height) * 100; progressBar.style.width = scrolled + '%'; }); } // تفعيل شريط التقدم في صفحات المقالات if (document.querySelector('.single-post, .type-post')) { createReadingProgress(); } // =============================================== // 6. تحسين القوائم المنسدلة // =============================================== const menuItems = document.querySelectorAll('.main-menu li, .nav-menu li'); menuItems.forEach(item => { const submenu = item.querySelector('.sub-menu, .mega-menu'); if (submenu) { item.addEventListener('mouseenter', () => { submenu.style.animation = 'slideDown 0.3s ease forwards'; }); item.addEventListener('mouseleave', () => { submenu.style.animation = 'slideUp 0.3s ease forwards'; }); } }); // =============================================== // 7. تأثير الكتابة للعناوين // =============================================== function typeWriter(element, text, speed = 50) { let i = 0; element.textContent = ''; function type() { if (i < text.length) { element.textContent += text.charAt(i); i++; setTimeout(type, speed); } } type(); } // تطبيق على العنوان الرئيسي للموقع const siteTitle = document.querySelector('.logo-text, .site-title'); if (siteTitle && siteTitle.textContent) { const originalText = siteTitle.textContent; siteTitle.textContent = ''; setTimeout(() => typeWriter(siteTitle, originalText, 100), 500); } // =============================================== // 8. تأثير التمرير السلس // =============================================== document.querySelectorAll('a[href^="#"]').forEach(anchor => { anchor.addEventListener('click', function(e) { const target = document.querySelector(this.getAttribute('href')); if (target) { e.preventDefault(); target.scrollIntoView({ behavior: 'smooth', block: 'start' }); } }); }); // =============================================== // 9. إضافة فئات CSS للأنيميشن // =============================================== const style = document.createElement('style'); style.textContent = ` @keyframes float { 0%, 100% { transform: translateY(0) translateX(0); } 25% { transform: translateY(-20px) translateX(10px); } 50% { transform: translateY(10px) translateX(-10px); } 75% { transform: translateY(-10px) translateX(5px); } } @keyframes rippleEffect { 0% { transform: scale(0); opacity: 1; } 100% { transform: scale(4); opacity: 0; } } @keyframes slideDown { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } } @keyframes slideUp { from { opacity: 1; transform: translateY(0); } to { opacity: 0; transform: translateY(-10px); } } .fade-in-element { opacity: 0; transform: translateY(30px); transition: all 0.6s ease; } .fade-in-visible { opacity: 1; transform: translateY(0); } /* تأثير التوهج للنص */ @keyframes textGlow { 0%, 100% { text-shadow: 0 0 10px rgba(0, 255, 135, 0.5); } 50% { text-shadow: 0 0 20px rgba(0, 255, 135, 0.8), 0 0 30px rgba(0, 255, 135, 0.6); } } .glow-text { animation: textGlow 2s ease-in-out infinite; } /* تحسين المؤشر */ * { cursor: url('data:image/svg+xml;utf8,'), auto; } a, button, input[type="submit"] { cursor: url('data:image/svg+xml;utf8,'), pointer; } `; document.head.appendChild(style); // =============================================== // 10. تأثير الخلفية المتحركة للهيدر // =============================================== const header = document.querySelector('#main-nav, .main-nav, .header'); if (header) { let lastScrollTop = 0; window.addEventListener('scroll', () => { const scrollTop = window.pageYOffset || document.documentElement.scrollTop; if (scrollTop > lastScrollTop) { // التمرير للأسفل header.style.transform = 'translateY(-100%)'; } else { // التمرير للأعلى header.style.transform = 'translateY(0)'; // تأثير الظل عند التمرير if (scrollTop > 100) { header.style.boxShadow = '0 10px 40px rgba(0, 255, 135, 0.4)'; } else { header.style.boxShadow = '0 5px 30px rgba(0, 255, 135, 0.3)'; } } lastScrollTop = scrollTop; }, { passive: true }); } // =============================================== // 11. عداد الأرقام المتحرك // =============================================== function animateCounter(element, target, duration = 2000) { const start = 0; const increment = target / (duration / 16); let current = start; const timer = setInterval(() => { current += increment; if (current >= target) { element.textContent = target.toLocaleString(); clearInterval(timer); } else { element.textContent = Math.floor(current).toLocaleString(); } }, 16); } // تطبيق على أرقام الإحصائيات document.querySelectorAll('.stats-number, .count, .tie-view-count').forEach(element => { const target = parseInt(element.textContent.replace(/,/g, '')); if (!isNaN(target)) { const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { animateCounter(element, target); observer.unobserve(element); } }); }); observer.observe(element); } }); // =============================================== // 12. تأثير الليزر على الحدود // =============================================== function addLaserBorder(element) { const laser = document.createElement('div'); laser.style.cssText = ` position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; overflow: hidden; border-radius: inherit; `; const beam = document.createElement('div'); beam.style.cssText = ` position: absolute; top: -2px; left: -100%; width: 100%; height: 2px; background: linear-gradient(90deg, transparent, #00FF87, transparent); animation: laserBeam 3s linear infinite; `; laser.appendChild(beam); element.style.position = 'relative'; element.appendChild(laser); } // تطبيق على البطاقات المميزة document.querySelectorAll('.featured-post, .sticky').forEach(addLaserBorder); // إضافة CSS للأنيميشن const laserStyle = document.createElement('style'); laserStyle.textContent = ` @keyframes laserBeam { 0% { left: -100%; } 100% { left: 100%; } } `; document.head.appendChild(laserStyle); console.log('✨ تم تحميل تأثيرات المشهد الرياضي بنجاح!'); }); // =============================================== // تصدير الوظائف للاستخدام الخارجي // =============================================== window.AlMashhadEffects = { version: '1.0.0', init: function() { console.log('🚀 AlMashhad Sports Effects Initialized'); } };

Mayele offre la Supercoupe africaine à Pyramids face à Berkane

Le Pyramids FC a remporté son premier titre de Supercoupe de la CAF après avoir battu la Renaissance Sportive de Berkane sur le score de 1-0, samedi 18 octobre 2025 au stade du 30 Juin du Caire. L’attaquant congolais Fiston Mayele a inscrit l’unique but de la rencontre à la 75e minute, permettant au club égyptien d’ajouter un deuxième trophée continental à son palmarès après la Ligue des Champions remportée la saison dernière. Cette victoire historique fait de Pyramids le troisième club égyptien à soulever ce trophée prestigieux après Al Ahly et Zamalek.​

La première période s’est déroulée sans grandes occasions, les deux équipes adoptant une approche prudente dans ce duel au sommet. Le club cairote a progressivement imposé son jeu offensif et sa maîtrise technique sous la direction de l’entraîneur croate Krunoslav Jurčić. Les Marocains de Berkane, champions de la Coupe de la Confédération, ont fait preuve de discipline et solidarité défensive mais ont manqué d’efficacité devant le but. Le gardien Ahmed El Shenawy a réalisé plusieurs arrêts décisifs pour préserver l’avantage égyptien jusqu’au coup de sifflet final.​

Ce triomphe confirme l’ascension fulgurante de Pyramids FC sur la scène continentale depuis sa création en 2008. Le club égyptien empoche 500 000 dollars de prime pour cette victoire tandis que Berkane reçoit 250 000 dollars en tant que finaliste. Les joueurs marocains Mohamed Chibi et Walid El Karti ont disputé cette finale sous les couleurs de Pyramids. La RS Berkane, déjà victorieuse en 2022, échoue dans sa quête d’un deuxième sacre mais reste une force majeure du football africain.​

Pensez-vous que Pyramids peut devenir une puissance durable du football africain? Partagez votre avis dans les commentaires.

Youssef magribi

Analyste sportif et journaliste expérimenté chez Info Sport, il possède 12 ans d'expérience en analyse technique et statistique des matchs. Il est spécialisé dans l'analyse des performances et l'utilisation des techniques modernes d'analyse sportive. Domaines d'expertise : Analyse technique des matchs Statistiques sportives Évaluation des performances des joueurs Analyse tactique moderne Il fournit des analyses approfondies, étayées par des statistiques et des chiffres, en mettant l'accent sur les aspects techniques et tactiques. Il a contribué de manière remarquable au développement du contenu analytique du site web et à la diffusion d'avis professionnels. More »

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Share to...