From ca717d9625cdd60272226db50f0f148c949565c7 Mon Sep 17 00:00:00 2001 From: Ken D'Ambrosio Date: Tue, 12 May 2026 12:33:17 +0000 Subject: Move slideshow interval control to album page; fix mobile viewport clipping - Interval input (default 5 s) now lives beside Shuffle/Full screen on the album page; passed as ?interval= param to the slideshow and seeded into the hidden ss-interval input on load. - Added "Interval" label text next to the input. - Fixed slideshow controls being pushed off-screen on mobile by using 100dvh (dynamic viewport height) with 100vh as a fallback, so the layout accounts for mobile browser chrome. Co-Authored-By: Claude Sonnet 4.6 --- public/js/album.js | 3 +++ 1 file changed, 3 insertions(+) (limited to 'public/js/album.js') diff --git a/public/js/album.js b/public/js/album.js index a2301c9..c3f775f 100644 --- a/public/js/album.js +++ b/public/js/album.js @@ -129,6 +129,8 @@ window.addEventListener('DOMContentLoaded', () => { const p = []; if (document.getElementById('ss-opt-shuffle')?.checked) p.push('shuffle=1'); if (document.getElementById('ss-opt-fullscreen')?.checked) p.push('fullscreen=1'); + const iv = parseFloat(document.getElementById('ss-opt-interval')?.value); + if (iv && iv !== 5) p.push('interval=' + iv); if (input && input.value.trim()) { const visible = [...document.querySelectorAll('#album-grid .album-card')] .filter(c => c.style.display !== 'none') @@ -153,6 +155,7 @@ window.addEventListener('DOMContentLoaded', () => { ['ss-opt-shuffle', 'ss-opt-fullscreen'].forEach(id => document.getElementById(id)?.addEventListener('change', updateSsLink) ); + document.getElementById('ss-opt-interval')?.addEventListener('input', updateSsLink); })(); // Touch swipe -- cgit v1.2.3