javascript - 正文设置为绝对位置无法在 Chrome 中获取或设置 scrollTop()

标签 javascript jquery html css

在下面的 JS fiddle 中,单击右侧栏中的链接将在 Firefox 中将页面向下滚动到 400px,但在 Chrome 中不起作用。

https://jsfiddle.net/a4qx507f/9/

为了争论起见,假设我可能无法更改 HTML 或 CSS,JS 中有没有办法让它工作?

body {
  position: absolute;
  left: 0;
  right: 20%;
  top: 0;
  bottom: 0;
  overflow: hidden;
  overflow-y: scroll;
}
html {
  overflow: hidden;
  height: 100%;
}

在 Chrome 中,无论向下滚动多远,following 都会返回 0。

console.log($('body').scrollTop());

在 Chrome 中,跟随什么都不做

$('body').scrollTop(400);

两者都适用于 Firefox。

最佳答案

这是因为您的 html 选择器上有 overflow: hidden;。如果您删除它按预期工作,请参阅更新的 fiddle :https://jsfiddle.net/a4qx507f/10/

关于javascript - 正文设置为绝对位置无法在 Chrome 中获取或设置 scrollTop(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45504585/

相关文章:

javascript - 如何从 D3 v5 中的 CSV 文件加载数据

javascript - 加载所有背景图像时显示页面

javascript - 使用 CSS 的逐个字母的文本外观动画

javascript - 如何防止 iFrame 在按下后退按钮时自动播放?

html - 如何在 CSS 中上推文本?

javascript - 替代 anchor URL

javascript - 使用 Puppeteer 单击选择器

javascript - 通过将函数和对象合并在一条语句中来创建类。在 javascript 中定义类的另一种方法

javascript - 按名称对数组数据进行分组

javascript - margin-left 和 width 属性在 mozilla firefox 中不起作用