我有一个很长的HTML文档。调整窗口大小时,我会在内容重排时尝试保持相对滚动位置。例如,如果页面顶部位于页面中间的段落上,在将窗口缩小到其宽度的一半之后,我想将段落保留在窗口的顶部。
我目前尝试使用js来维护相对滚动偏移量:https://jsfiddle.net/54xh3Ldy/1/
let pageHeight = 0
window.onload = () => {
pageHeight = document.body.getBoundingClientRect().height
}
window.addEventListener('resize', () => {
const currentOffset = window.scrollY
const newPageHeight = document.body.getBoundingClientRect().height
const dHeight = newPageHeight / pageHeight
window.scrollTo(0, currentOffset * dHeight)
pageHeight = newPageHeight
}, true)
这种作品,但非常紧张。有更好的方法吗?