Changeset 2b52bfb in Klonkt for src/assets/js/audio-player.js
- Timestamp:
- 06/14/2026 04:07:28 AM (3 months ago)
- Branches:
- main
- Children:
- 89d6536
- Parents:
- 942028f
- File:
-
- 1 edited
-
src/assets/js/audio-player.js (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/assets/js/audio-player.js
r942028f r2b52bfb 496 496 // 7. Sheet expand/close + drag-down-to-close 497 497 // ============================================================ 498 // Back-knop sluit de sheet op mobiel: bij openen pushen we een history-entry, 499 // zodat de telefoon-terugknop (popstate) eerst de sheet sluit i.p.v. de pagina 500 // te verlaten. We balanceren 'm bij een UI-sluiting via history.back(). 501 let sheetHistoryPushed = false; 502 498 503 function openSheet() { 504 if (sheet.classList.contains('is-open')) return; 499 505 sheet.classList.add('is-open'); 500 506 sheet.setAttribute('aria-hidden', 'false'); 501 507 document.body.classList.add('audio-sheet-locked'); 502 } 503 function closeSheet() { 508 if (isMobileView()) { 509 try { history.pushState({ pcmsSheet: true }, ''); sheetHistoryPushed = true; } catch (e) {} 510 } 511 } 512 function closeSheet(fromPopstate) { 513 if (!sheet.classList.contains('is-open')) return; 504 514 sheet.classList.remove('is-open'); 505 515 sheet.setAttribute('aria-hidden', 'true'); … … 507 517 sheetPanel.style.removeProperty('--pcms-drag-y'); 508 518 sheetBackdrop.style.removeProperty('--pcms-sheet-progress'); 509 } 519 // UI-sluiting (X / swipe / backdrop / Esc): pop onze eigen history-entry zodat 520 // de volgende terug-knop weer normaal navigeert. Bij een popstate-sluiting 521 // (de terug-knop zelf) is de entry al gepopt. 522 const wasPushed = sheetHistoryPushed; 523 sheetHistoryPushed = false; 524 if (wasPushed && !fromPopstate) { try { history.back(); } catch (e) {} } 525 } 526 window.addEventListener('popstate', () => { 527 if (sheet.classList.contains('is-open')) closeSheet(true); 528 }); 510 529 expandTrigger.addEventListener('click', openSheet); 511 sheetClose.addEventListener('click', closeSheet);512 sheetBackdrop.addEventListener('click', closeSheet);530 sheetClose.addEventListener('click', () => closeSheet()); 531 sheetBackdrop.addEventListener('click', () => closeSheet()); 513 532 document.addEventListener('keydown', (e) => { 514 533 if (e.key === 'Escape' && sheet.classList.contains('is-open')) closeSheet();
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)