/**
* تأثيرات المشهد الرياضي لقالب جنة
* 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');
}
};
champions leage back
Le Real Madrid a renforcé sa position parmi les premières places du classement de la Ligue des Champions après sa précieuse victoire contre la Juventus par un but à zéro au stade Santiago Bernabéu le mercredi 22 octobre 2025, lors de la troisième journée de la phase de poules . L’unique but de la rencontre a été inscrit par la star anglaise Jude Bellingham à la 57ème minute après une action individuelle splendide qui a confirmé la domination de l’équipe espagnole tout au long du match .
Le Real Madrid a contrôlé les événemants du match de manière évidente, Vinicius Junior et Rodrygo ont gaspillé de nombreuses occasions dangereuses, tandis que la Juventus n’a pas réussi à menacer les cages de Thibaut Courtois pendant toute la durée du match . Avec cette victoire, le club royal a porté son total à 9 points en trois matchs avec un bilan parfait, occupant la cinquième place du classement de la Ligue des Champions, seulement derrière les leaders à la différence de buts .
En revanche, le total de la Juventus italienne est resté bloqué à seulement deux points après trois matchs, la faisant chuter à la 25ème place du tableau, ce qui place la Vieille Dame dans une situation difficile avant les prochaines rencontres . Le classemant est actuellement dominé par le trio du Paris Saint-Germain, du Bayern Munich et de l’Inter Milan avec 9 points également mais avec une meilleure différence de buts .
Tableau du classement de la Ligue des Champions après la troisième journée
Position
Équipe
Matchs
Victoires
Nuls
Défaites
Points
1
Paris Saint-Germain
3
3
0
0
9
2
Bayern Munich
3
3
0
0
9
3
Inter Milan
3
3
0
0
9
4
Arsenal
3
3
0
0
9
5
Real Madrid
3
3
0
0
9
6
Borussia Dortmund
3
2
1
0
7
7
Manchester City
3
2
1
0
7
8
Newcastle United
3
2
0
1
6
25
Juventus
3
0
2
1
2
Le Real Madrid se prépare maintenant à affronter son rival traditionnel le FC Barcelone lors du Clásico dimanche 26 octobre dans le cadre de la Liga espagnole .
Que pensez-vous de la performance du Real Madrid cette saison ? Pensez-vous que l’équipe continuera à remporter des victoires ? Partagez votre avis dans les commentaires !
Suivez-Nous
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 »