在vue 中 ,dom操作滚动条 scrollTop无效

问题来源

前几天为了实现一个聊天功能,采用websocket技术,前端收到webscoket传递的消息后,需要将聊天内容滚动到最下边,一直操作,没能成功,最后采用以下方式解决

html布局

1、用的是一个大div里面(id为chatContent),利用vue进行v-for每一条的聊天内容的展示,
2、大的div使用 overflow: auto;属性,自动出现滚动条

vue方法

1、setTimeout的时间可以稍设长点,我最开始就是设的太小了,导致一直以为是方法本身的错误
2、在自己想要操作的地方直接调用这个方法即可

 scrollToBottom() {
                this.$nextTick(() => {
                    setTimeout(() => {
                        var scrollTop = document.getElementById("chatContent")
                        scrollTop.scrollTop = scrollTop.scrollHeight
                    }, 200)
                })
            }
上一篇:setTimeout 是到了xx ms 就执行吗,了解浏览器的 Event-Loop 机制


下一篇:微任务和宏任务的执行顺序