【发布时间】:2016-12-09 01:55:41
【问题描述】:
我有一个带有滚动功能的<div>。通过 JavaScript,我将元素添加到 <div> 和 element.scrollTop = element.scrollHeight。效果很好,除非每次将元素添加到<div> 时我都必须这样做。有没有办法自动滚动(不使用setInterval 并反复滚动)并保持<div> 的滚动条固定在底部?
我的<div>:
<div class="messages" style="height: 7em; overflow: scroll">
<div>Anonymous: Hello</div>
<div>John: Hi</div>
</div>
内容更改时是否有<div> 事件?
更新:在添加<div>之后,我无法轻松访问 JavaScript 代码。这就是为什么我喜欢添加一个事件监听器或其他一些机制来保持滚动条固定在底部。
【问题讨论】:
-
你为什么使用 setInterval?如果有新事件发生,您应该滚动。
-
更具体地说:只有在添加新元素时才滚动到底部并且你在它之前已经在底部,否则你的用户会讨厌你。
-
我认为在将元素添加到
<div>之后执行element.scrollTop = element.scrollHeight没有任何问题。 -
您可能想要
MutationObserverdeveloper.mozilla.org/en/docs/Web/API/MutationObserver ,但是,如果您自己的代码完成了 DOM 操作,为什么不直接调用滚动函数呢? -
你至少可以发布你的js代码吗? @at
标签: javascript css html dom-events