共计 996 个字符,预计需要花费 3 分钟才能阅读完成。
遇到问题
container.scrollTop 一直为 0 不能赋值
watch: {
historyList () {
this.$nextTick(() => {
const container = this.$el.querySelector(‘.scrolldivmain’)
console.log(container.scrollHeight)
console.log(container.scrollTop)
this.$refs.scrolldiv.scrollTo(0, container.scrollHeight + ‘px’)
container.scrollTop = container.scrollHeight
container.scrollTop(0, container.scrollHeight)
console.log(container.scrollTop) // container.scrollTop 一直为 0
})
}
}
注意点
确定下滚动条是在哪里显示的 有个方法判断下:
window.addEventListener(‘scroll’, () => {
var scrollTop = this.$el.querySelector(‘.scrolldivmain’)
// console.log(scrollTop.scrollHeight)
console.log(scrollTop.scrollTop) // 查看打印的值是否有变化 如果有 则说明滚滚动条在这个标签中
// scrollTop.scrollTop = scrollTop.scrollHeight // 可以尝试下 滚动滚动条。一直在底部则可以设置成功
}, true)
解决方案
需要用到的地方 调用 this.scrollToBottom() 即可
<!–element-ui–>
<el-main class=”scrolldivmain”>
some code
</el-main>
methods: {
// 滚动到底部
scrollToBottom () {
this.$nextTick(() => {
setTimeout(() => {
var scrollTop = this.$el.querySelector(‘.scrolldivmain’)
scrollTop.scrollTop = scrollTop.scrollHeight
}, 13)
})
}
}
参考文章
vue 无法监听 scroll 事件参考 vue-chat 代码