以下代码在chrome中完美运行,但在safari(桌面和移动设备)
中无效const messageBody = document.querySelector(`.chatContainer`);
messageBody.scrollTop = messageBody.scrollHeight;
messageBody是一个带溢出y的div:scroll
每次将项目添加到div时,它都会滚动到底部。 知道如何让它在野生动物园中发挥作用吗?
答案 0 :(得分:0)
我发现问题,这是我的反应代码中的一个问题。 每次我向我的数组添加一个新元素时,我的所有组件都被重新渲染。这是因为我覆盖了我给他们的现有身份。 在chrome中工作的代码在safari中不起作用,因为safari在渲染所有组件之前执行了代码。
答案 1 :(得分:-1)
ScrollPosition.prototype.restore = function () {
if (this.readyFor === 'up') {
this.node.scrollTop = this.node.scrollHeight -
this.previousScrollHeightMinusTop;
}
}
this.previousScrollHeightMinusTop = this.node.scrollHeight-this.node.scrollTop;
参比 http://kirbysayshi.com/2013/08/19/maintaining-scroll-position-knockoutjs-list.html