Почему scrollTop не видит элемент, который мы только что добавили в массив push? Метод срабатывает в Vue компоненте, когда пришло новое сообщение, то скролл опускается к предыдущему, то есть предпоследнему.
if (this.dialogSelect > 0){
window.Echo.private('chat.' + this.dialogSelect)
.listen('DialogMessage',({data,user_id}) => {
this.messages.push({
avatar: this.userAuth.avatar,
fullname: this.userAuth.fullname,
user_id: this.userAuth.id,
replay: data
});
$('.chat--messages__wrapper').scrollTop($('.chat--messages__wrapper').prop('scrollHeight'));
})
.listenForWhisper('typing', (e) => {
});
}
Вот так выводятся сообщения:
<ul class="chat--messages__wrapper" v-on:scroll.passive="onScroll">
<li class="chat--messages__item" v-for="(message,index) in messages">
<a :href="'/profile/'+message.slug" target="_blank" class="chat--user__image" v-bind:style='{ backgroundImage: `url("/storage/${message.avatar}")` }'></a>
<div class="chat--user__data">
<p class="last--massage" v-html="message.replay"></p>
</div>
</li>
</ul>