Summary Files Commits Branches @commit @diff @stats
path: root / src / scripts / presentation.js
diff options
context:
space:
mode:
Commitfc912ee942e9e577156fcedee047fee66d0eed13 (patch)
Author
 Syndamia <kamen@syndamia.com>
2023-07-11 09:36:32 +0300
Committer
 Syndamia <kamen@syndamia.com>
2023-07-11 09:36:32 +0300
Filesbfd1f85f90dc8b954eb199518811328bf8987208 /src/scripts/presentation.js
syndamia.com-fc912ee942e9e577156fcedee047fee66d0eed13.tar
syndamia.com-fc912ee942e9e577156fcedee047fee66d0eed13.tar.gz
syndamia.com-fc912ee942e9e577156fcedee047fee66d0eed13.zip
Parent265bf88855da15e43a87380a7433f5f575bd230b (diff)
(presentation) Fixed slide scaling to work properly
1 files changed, 8 insertions, 2 deletions
-rw-r--r--src/scripts/presentation.js10
diff --git a/src/scripts/presentation.js b/src/scripts/presentation.js
index 425815c..ba7dd66 100644
--- a/src/scripts/presentation.js
+++ b/src/scripts/presentation.js
@@ -79,20 +79,26 @@ presentBtn.addEventListener('click', function() {
else {
pageY = window.scrollY; pageX = window.scrollX;
window.scrollTo(0, 0);
- fixAbsoluteSlideScale();
}
presenting = !presenting;
+ fixAbsoluteSlideScale();
});
function fixAbsoluteSlideScale() {
- var scale = Math.min(window.innerHeight / slides[0].offsetHeight, window.innerWidth / slides[0].offsetWidth);
+ var height = (presenting) ? window.innerHeight : articleElem.offsetHeight;
+ var width = (presenting) ? window.innerWidth : articleElem.offsetWidth - 32;
+ var scale = Math.min(height / slides[0].offsetHeight, width / slides[0].offsetWidth);
+ // Update .slide
+ document.styleSheets.item(3).cssRules[0].style.transform = 'scale(' + scale + ')';
+ document.styleSheets.item(3).cssRules[0].style.marginBottom = 'calc(1em - ' + slides[0].offsetHeight + 'px * ' + (1 - scale) + ')';
// Update .absolute-slide
document.styleSheets.item(3).cssRules[1].style.transform = 'translate(-50%, -50%) scale(' + scale + ')';
// Update .clicked-image
document.styleSheets.item(3).cssRules[2].style.transform = 'translate(-50%, -50%) scale(' + (1/scale) + ')';
}
window.addEventListener('resize', fixAbsoluteSlideScale);
+window.addEventListener('load', fixAbsoluteSlideScale);
/* Show as article button */