vue窗口无限滚动最下方,scrollTop一直为0无法设置解决
最近在用vue写聊天小功能的时候,用到element-ui隐藏组件el-scrollbar在写对话窗无限滚动的时候遇到无法滚动到底的问题解决了很久才解决。现在记录总结在这里网上大多给的解决方案是按照是否设置页面DTDlet scroll = document.getElementById(‘block’)//后面三种写法的基础用(1)document.Element.scrollTop = scr
vue窗口无限滚动最下方,scrollTop一直为0无法设置解决
在写对话窗无限滚动的时候遇到无法滚动到底的问题
解决了很久才解决。
现在记录总结在这里
网上大多给的解决方案是
按照是否设置页面DTD
let scroll = document.getElementById(‘block’)//后面三种写法的基础
用
(1)document.Element.scrollTop = scroll.scrollHeight
(2)scroll.scrollTop = scroll.scrollHeight
或是
(3)document.body.scrollTop = scroll.scrollHeight来解决
这个解决方案肯定是没问题的,根据自己电脑不同情况,选择以上三种写法之一,能成功即可
在这个过程中有两个关键问题,如果不解决,上面写法再怎么正确也是无效的。
(1)是用getElementById方法取不到对应的元素
这个时候就要换vue中获取页面元素的方法,
这里举一个例子
let scroll = this.$refs[‘block’].wrap
用vue的ref获取或者$el.selector方法获取
(2)是setTimeout方法的问题
那个时间必须设置一下,我这里设置的是100,不然scrollTop永远是会设置失败为0的
那个this.$nextTick(() 也是必须的方法,按照下面这个来写就解决了!
下面就是正确的写法了
setTimeout(() => {
this.$nextTick(() => {
let scroll = this.$refs['block'].wrap // 获取对象
scroll.scrollTop = scroll.scrollHeight
})
}, 100)
更多推荐
所有评论(0)