【问题标题】:scrollHeight is inaccurate due to dynamic content由于动态内容,scrollHeight 不准确
【发布时间】:2017-04-28 23:27:26
【问题描述】:

我有一个 div 以特定间隔预先添加动态内容。加载此内容后,我需要滚动条转到 div 的底部,但由于渲染尚未完成,它只下降了一部分。我已经通过在滚动 div 之前使用 setTimeout 确认了这一点。是否可以在向下滚动之前等待渲染完成?

这是滚动的代码:

// AJAX loads content into the div #myDiv

document.querySelector("#myDiv").scrollTop = document.querySelector("#myDiv").scrollHeight;

【问题讨论】:

  • 如果您的<img> 标签没有指定宽度/高度,HTML 验证器往往会向您抱怨。这就是为什么。让服务器包含这些属性,浏览器会自动分配空间,让你准确使用scrollHeight
  • @NiettheDarkAbsol 谢谢!回到我的开发工作站后,我会确认这是否有效。

标签: javascript ajax


【解决方案1】:

您可以使用 XmlHttpRequest() 的 readyState 属性来估计它何时完成加载。

xmlhttpobject.onreadystatechange = function() {
  if (this.readyState == 4 && this.status == 200) {
    document.querySelector("#myDiv").scrollTop = document.querySelector("#myDiv").scrollHeight;
  }
}

Reference

【讨论】:

    猜你喜欢
    • 2023-02-22
    • 1970-01-01
    • 1970-01-01
    • 2019-06-12
    • 1970-01-01
    • 2019-09-19
    • 1970-01-01
    • 2017-08-25
    • 1970-01-01
    相关资源
    最近更新 更多