首页 > 解决方案 > 在给定百分比的情况下滚动到网页上的特定点

问题描述

我正在使用以下函数来计算并保存我已滚动网页的百分比:

const getPercentRead = () => {
  const h = document.documentElement,
    b = document.body,
    st = "scrollTop",
    sh = "scrollHeight";
  return ((h[st] || b[st]) / ((h[sh] || b[sh]) - h.clientHeight)) * 100;
}

刷新页面后,我想用这个函数的输出和当前窗口高度来滚动自己到上次保存的位置。

这是我目前的尝试:

const scrolled = (percentRead / windowHeight) * 100;
window.scrollTo(0, scrolled);

但是,这并没有将我带到正确的滚动位置。我将不胜感激您对此提供的任何帮助。

谢谢!

标签: javascripthtmlweb

解决方案


如果您不需要使用百分比,则此解决方案将起作用。

保存此值:

var x = window.pageYOffset;

然后滚动到它:

window.scrollTo(0, x);

推荐阅读