在窗口调整大小上维护相对滚动位置

时间:2017-01-18 20:40:11

标签: javascript html dom

我有一个很长的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)

这种作品,但非常紧张。有更好的方法吗?

0 个答案:

没有答案