Skip to content

Commit 513ef33

Browse files
Update script.js
1 parent fc67580 commit 513ef33

1 file changed

Lines changed: 39 additions & 0 deletions

File tree

script.js

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,3 +172,42 @@ document.querySelectorAll('.cta-bot').forEach(a => { a.href='https://t.me/Metrid
172172
};
173173
}
174174
})();
175+
176+
177+
// === Metridex Screens carousel ===
178+
(function(){
179+
const lb = document.getElementById('mdxLightbox');
180+
const lbImg = lb ? lb.querySelector('img') : null;
181+
const lbClose = lb ? lb.querySelector('.mdx-close') : null;
182+
function openLB(src){ if(!lb||!lbImg) return; lbImg.src = src; lb.classList.add('open'); lb.removeAttribute('hidden'); }
183+
function closeLB(){ if(!lb) return; lb.classList.remove('open'); lb.setAttribute('hidden',''); }
184+
lb && (lb.addEventListener('click', closeLB), lbClose && lbClose.addEventListener('click', closeLB));
185+
document.addEventListener('keydown', (e)=>{ if(e.key==='Escape') closeLB(); });
186+
187+
document.querySelectorAll('.mdx-frame').forEach(frame=>{
188+
const list = (frame.getAttribute('data-images')||'').split(',').map(s=>s.trim()).filter(Boolean);
189+
const stage = frame.querySelector('.mdx-stage');
190+
const img = new Image();
191+
let i = 0;
192+
function render(){ img.src = list[i]; counter.textContent = (i+1)+' / '+list.length; }
193+
img.alt = frame.getAttribute('data-alt') || 'Metridex screenshot';
194+
img.addEventListener('click', ()=> openLB(img.src));
195+
stage.appendChild(img);
196+
197+
const prev = frame.querySelector('.mdx-prev');
198+
const next = frame.querySelector('.mdx-next');
199+
const counter = frame.querySelector('.mdx-counter');
200+
201+
function step(d){ i = (i + d + list.length) % list.length; render(); }
202+
prev && prev.addEventListener('click', ()=> step(-1));
203+
next && next.addEventListener('click', ()=> step(1));
204+
205+
// Touch swipe
206+
let sx=null;
207+
stage.addEventListener('touchstart', e=> sx=e.touches[0].clientX, {passive:true});
208+
stage.addEventListener('touchend', e=>{ if(sx==null) return; const dx=e.changedTouches[0].clientX - sx; if(Math.abs(dx)>40) step(dx<0?1:-1); sx=null; }, {passive:true});
209+
210+
if(list.length){ render(); }
211+
});
212+
})();
213+
// === /Carousel ===

0 commit comments

Comments
 (0)