Fix vertical scrolling issues.

This commit is contained in:
2022-11-24 07:24:56 +02:00
parent c42c9fecba
commit f3e5b92318
13 changed files with 343 additions and 9874 deletions
+17
View File
@@ -0,0 +1,17 @@
export function setupFrameResizeListener() {
const previewFrame = getPreviewFrame();
window.addEventListener('message', function (e) {
const RESIZE_CODE = 'resize:';
if (typeof e.data !== 'string' || !e.data.startsWith(RESIZE_CODE)) {
return;
}
const data = JSON.parse(e.data.substring(RESIZE_CODE.length))
previewFrame.style.height = data.height + 'px'
});
}
export function getPreviewFrame() {
return document.getElementById('preview_frame');
}
+32
View File
@@ -0,0 +1,32 @@
'use strict';
// Scrollbars / Frame resizes notifications.
(function () {
let height;
const heightLimit = window.outerHeight * 2;
handleHeightChange(); // Initial frame's height setup.
setupResizeListener(); // Listen to frame's height changes.
///
function setupResizeListener() {
const resizeObserver = new ResizeObserver(handleHeightChange);
resizeObserver.observe(document.body);
}
function handleHeightChange(entries) {
const updatedHeight = getCurrentHeight();
if (height === updatedHeight || updatedHeight > heightLimit) {
return;
}
const RESIZE_CODE = 'resize:';
height = updatedHeight;
window.parent.postMessage(RESIZE_CODE + JSON.stringify({height}), '*');
}
function getCurrentHeight() {
return document.querySelector('body > main').scrollHeight;
}
})();