iter(g117): 指示条与滑块跟随尺寸重算

This commit is contained in:
HIsheR
2026-10-26 14:11:09 +08:00
parent dcd5e0e818
commit 6cf4905a71
4 changed files with 24 additions and 1 deletions
+10
View File
@@ -13,3 +13,13 @@ export function watchViewport(root: HTMLElement, host: HTMLElement | Window, han
window.addEventListener('resize', run); // 视口变化会改判定线与可滚距离
handler(); // 首帧同步一次:刷新时停在页面中段也能得到正确状态
}
/*** 尺寸监听:根节点尺寸变化时重算(视口缩放、侧栏展开、字体变大),脱离文档即自断,不用手动销毁 ***/
export function trackSize(root: HTMLElement, handler: () => void): void {
if (typeof ResizeObserver === 'undefined') { window.addEventListener('resize', handler); return; } // 老环境回落:至少跟上视口变化
const ro = new ResizeObserver(() => {
if (!root.isConnected) { ro.disconnect(); return; } // 已卸载:断开观察,避免闭包被观察器拽住
handler();
});
ro.observe(root);
}