// Simple header releases rotator: cycles visible .active items to show multiple releases try { const containerRotator = document.querySelector('.site-topbar__tagline .gnp-releases-compact'); if (containerRotator) { const items = Array.from(containerRotator.querySelectorAll('.gnp-releases-compact__item')); if (items.length) { // Read mode/step/interval from wrapper's data attributes (defaults applied) const wrapper = containerRotator.closest('.site-topbar__tagline'); const mode = (wrapper && wrapper.dataset && wrapper.dataset.gnpRotatorMode) ? wrapper.dataset.gnpRotatorMode : 'group'; const step = wrapper && wrapper.dataset && wrapper.dataset.gnpRotatorStep ? Math.max(1, parseInt(wrapper.dataset.gnpRotatorStep, 10) || 1) : 1; const intervalMs = wrapper && wrapper.dataset && wrapper.dataset.gnpRotatorInterval ? Math.max(250, parseInt(wrapper.dataset.gnpRotatorInterval, 10) || 4000) : 4000;const getVisibleCount = () => { if (mode === 'single') return 1; if (window.matchMedia('(max-width:480px)').matches) return 1; if (window.matchMedia('(max-width:768px)').matches) return 2; return 3; // desktop: show 3 at once };let visible = getVisibleCount(); let start = 0;const show = () => { items.forEach(i => i.classList.remove('active')); for (let i = 0; i < Math.min(visible, items.length); i++) { const idx = (start + i) % items.length; items[idx].classList.add('active');start = (start + step) % items.length; show(); }, intervalMs);window.addEventListener('resize', function(){ const v = getVisibleCount(); if (v !== visible) { visible = v; start = 0; show(); } }); } } } catch (e) { console.warn('GNP releases rotator failed', e); }// Carousel const carousel = document.getElementById('gnp-releases-carousel'); if (carousel) { // initialize carousel if needed (left intentionally blank) }// Attach search and menu handlers (always) const container = document.querySelector('[data-search-container]'); const toggle = container ? container.querySelector('[data-search-toggle]') : null; const close = container ? container.querySelector('[data-search-close]') : null; const input = container ? container.querySelector('input[type="search"]') : null;// Search toggle (desktop button) toggle && toggle.addEventListener('click', function(e) { e.preventDefault(); container.classList.toggle('active'); if (container.classList.contains('active')) setTimeout(() => input && input.focus(), 120); });// Close button inside search close && close.addEventListener('click', function(e) { e.preventDefault(); container.classList.remove('active'); });// Close search when clicking outside (but allow logo to open on mobile) document.addEventListener('click', function(e) { if (!container || !container.classList.contains('active')) return; if (!container.contains(e.target) && !e.target.closest('.site-branding')) { container.classList.remove('active'); } });// NOTE: logo keeps its navigation behaviour. Mobile search is opened via the loupe button.// mobile menu toggle is handled below (single handler) to avoid duplicate toggles// Theme toggle flottant const themeToggle = document.querySelector('[data-theme-toggle]'); if(themeToggle){ themeToggle.addEventListener('click',()=>{ document.body.classList.toggle('dark-theme'); document.querySelector('.theme-toggle__icon--dark').classList.toggle('active'); document.querySelector('.theme-toggle__icon--light').classList.toggle('active'); }); }// Menu toggle (burger) — simply toggle the is-open class; CSS handles display via media queries const menuToggle = document.querySelector('.menu-toggle'); const primaryNav = document.querySelector('.primary-navigation'); if (menuToggle && primaryNav) { menuToggle.addEventListener('click', function(e){ e.stopPropagation(); const opened = primaryNav.classList.toggle('is-open'); menuToggle.setAttribute('aria-expanded', opened ? 'true' : 'false'); });// Close the menu when clicking outside document.addEventListener('click', function(ev){ if (!primaryNav.contains(ev.target) && !menuToggle.contains(ev.target)) { primaryNav.classList.remove('is-open'); menuToggle.setAttribute('aria-expanded', 'false'); } });// Close menu when a link is clicked primaryNav.querySelectorAll('a').forEach(function(a){ a.addEventListener('click', function(){ primaryNav.classList.remove('is-open'); menuToggle.setAttribute('aria-expanded', 'false'); }); }); }});

 De votre côté, est-ce que vous attendez Battlefield 6?N’hésitez pas à nous en faire part dans les commentaires sur GeekNPlay, mais également votre avis sur les réseaux sociaux FacebookThreads ou encore sur X (anciennement Twitter).

Partager cet article