Не смещать скролл при подгрузке данных VueJs
вывожу данные
<ul class="chat--messages__wrapper" v-on:scroll.passive="onScroll" v-if="messages.length > 0">
<li class="chat--messages__item" v-for="(message,index) in messages">
<div class="chat--user__data">
<p class="last--massage" v-html="message.replay"></p>
</div>
</li>
</ul>
когда позиция скролла достигает 0 выполняется метод
onScroll(event){
const that = this;
if (event.target.scrollTop === 0){
this.pagination.current_page += 1;
axios.get('/profile/dialogs/messages',{
params:{
dialog_id: this.dialogSelect,
page: this.pagination.current_page
}
})
.then((response) => {
$.each(response.data.messages.data, function(index,value){
that.messages.unshift(value);
});
})
.catch(error => {});
}
}
},
как сделать так, чтобы после того как подгрузились данные, скролл остался на месте и можно листать вверх и смотреть, что подгрузилось, сейчас у меня скролл остается на вверху, а данные ниже смещаются, и нужно вниз листать, чтобы посмотреть, что подгрузилось
Ответы (1 шт):
Автор решения: peperoneen
→ Ссылка
Я бы советовал реализовать этот кейс использованием vue-infinite-loading.
Если же нужно сделать это без подключения внешних компонентов - то можно ознакомиться с этим гайдом.