mirror of
https://github.com/Kpa-clawbot/meshcore-analyzer.git
synced 2026-03-30 18:15:47 +00:00
fix: rotation — JS-driven height (window.innerHeight) on live-page+app, runs immediately + on every resize/orientation/visualViewport change
This commit is contained in:
@@ -84,7 +84,7 @@
|
||||
<script src="nodes.js?v=1773961950" onerror="console.error('Failed to load:', this.src)"></script>
|
||||
<script src="traces.js?v=1774079160" onerror="console.error('Failed to load:', this.src)"></script>
|
||||
<script src="analytics.js?v=1773961035" onerror="console.error('Failed to load:', this.src)"></script>
|
||||
<script src="live.js?v=1773964063" onerror="console.error('Failed to load:', this.src)"></script>
|
||||
<script src="live.js?v=1773964458" onerror="console.error('Failed to load:', this.src)"></script>
|
||||
<script src="observers.js?v=1774079160" onerror="console.error('Failed to load:', this.src)"></script>
|
||||
<script src="node-analytics.js?v=1773961276" onerror="console.error('Failed to load:', this.src)"></script>
|
||||
</body>
|
||||
|
||||
@@ -65,20 +65,23 @@
|
||||
_onResize = function() {
|
||||
clearTimeout(resizeTimer);
|
||||
resizeTimer = setTimeout(() => {
|
||||
// Set live-page height from JS — most reliable across all mobile browsers
|
||||
const page = document.querySelector('.live-page');
|
||||
const appEl = document.getElementById('app');
|
||||
const h = window.innerHeight;
|
||||
if (page) page.style.height = h + 'px';
|
||||
if (appEl) appEl.style.height = h + 'px';
|
||||
if (map) {
|
||||
// Force container size recalc
|
||||
const page = document.querySelector('.live-page');
|
||||
if (page) { page.style.height = window.innerHeight + 'px'; }
|
||||
map.invalidateSize({ animate: false });
|
||||
map.invalidateSize({ animate: false, pan: false });
|
||||
}
|
||||
}, 150);
|
||||
}, 50);
|
||||
};
|
||||
// Run immediately to set correct initial height
|
||||
_onResize();
|
||||
window.addEventListener('resize', _onResize);
|
||||
window.addEventListener('orientationchange', () => {
|
||||
setTimeout(_onResize, 100);
|
||||
setTimeout(_onResize, 400);
|
||||
setTimeout(_onResize, 800);
|
||||
setTimeout(_onResize, 1500);
|
||||
// Orientation change is async — viewport dimensions settle late
|
||||
[50, 200, 500, 1000, 2000].forEach(ms => setTimeout(_onResize, ms));
|
||||
});
|
||||
if (window.visualViewport) {
|
||||
window.visualViewport.addEventListener('resize', _onResize);
|
||||
@@ -1458,6 +1461,9 @@
|
||||
window.removeEventListener('orientationchange', _onResize);
|
||||
if (window.visualViewport) window.visualViewport.removeEventListener('resize', _onResize);
|
||||
}
|
||||
// Restore #app height to CSS default
|
||||
const appEl = document.getElementById('app');
|
||||
if (appEl) appEl.style.height = '';
|
||||
const topNav = document.querySelector('.top-nav');
|
||||
if (topNav) { topNav.classList.remove('nav-autohide'); topNav.style.position = ''; topNav.style.width = ''; topNav.style.zIndex = ''; }
|
||||
if (_navCleanup) {
|
||||
|
||||
Reference in New Issue
Block a user