[英]Autoscroll div issue
我正在尝试将div滚动添加到内容中。 我正在使用Vuejs列表,该列表会随着源数组(vuejs的数据数组)的更改而更新项目。
<message v-for="message in messages"></message>
这是我的自动滚动伪代码:
let scroll = false;
messagesContainer.addMessageChild(new messageElement(...)); // addMessageChild appends item to vuejs's data, it may be async when it actually adds the element to the DOM which may cause the problem
if (messagesContainer.scrollTop = maxScrollOfMessagesContainer)
scroll = true;
messagesContainer.scrollTop = maxScrollOfMessagesContainer;
但是,消息容器元素不会滚动。 我担心Vuejs可能会异步地从源(数据)中更新(插入)元素,这种方式可能会跳过if (messagesContainer.scrollTop = maxScrollOfMessagesContainer)
检查(在检查之后添加元素(消息))。
我应该怎么做才能防止这种情况?
滚动上一条消息的方法怎么样?
模板:
<message v-for="message in messages" v-class="last-message : $index === (items.length-1)">
</message >
方法:
// smooth scroll on .last-message
scrollToLastMessage: function () {
document.querySelector('.last-message').scrollIntoView({
behavior: 'smooth'
})
}
// scroll when messages change
watch: {
messages: function () {
this.scrollToLastMessage()
}
}
// scroll when page ready
ready() {
this.scrollToLastMessage()
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.