app.js (874 B )
1 // Wiring that spans the other files 2 3 // Update all image positions when window resizes (for responsive scaling) 4 window.addEventListener('resize', () => { 5 applyPageWidth(); // display or zoom may have changed 6 images.forEach(img => { 7 updateImagePosition(img); 8 }); 9 }); 10 11 // Warn before leaving page if images are present 12 window.addEventListener('beforeunload', (e) => { 13 if (images.length > 0) { 14 e.preventDefault(); 15 e.returnValue = ''; 16 return ''; 17 } 18 }); 19 20 // Mobile file input handling 21 const fileInput = document.getElementById('fileInput'); 22 const addImagesBtn = document.getElementById('addImagesBtn'); 23 24 addImagesBtn.addEventListener('click', () => { 25 fileInput.click(); 26 }); 27 28 fileInput.addEventListener('change', async (e) => { 29 await processAndAddImages(e.target.files, 0, 0); 30 31 // Clear the input so the same files can be selected again 32 fileInput.value = ''; 33 });