handlScroll(immediate = false) {
// 一开始用的是这种方法
// const parent = document.querySelector('.chat-container');
// const child = document.querySelector('.chat-record');
// parent.scrollTop = child.scrollHeight
const ele = this.$refs.chatRecord.$el.lastElementChild;
if (immediate) {
//input focus事件立马调一次,显示最新消息
ele && ele.scrollIntoView();
return;
}
this.$nextTick(() => {
//不能直接用 ele nextTick会重新更新DOM,ele是上一轮的缓存
//因为要滚动的内容跟触发滚动的事件不在同一个组件,所以用了$el层层筛选
this.$refs.chatRecord.$el.lastElementChild.scrollIntoView();
});
},
关于scroll、vue2的一些坑
最新推荐文章于 2024-08-23 17:58:50 发布