Прокрутить до конца сообщения

1

Я построил систему сообщений, используя представление. Самые новые сообщения начинаются снизу вверх. Когда вы нажимаете на разговор, который хотите просмотреть, я бы хотел автоматически прокручивать нижнюю часть разговора после того, как все сообщения были загружены с помощью аксиом.

Коммуникационные сообщения

methods: {
  getOldMessages(conversation_id){

        setTimeout(function() {
        axios({
            method: 'get',
            url: this.url,
        }).then(function(response) {
            //console.log(response.data);

            this.messages = response.data;

            this.scrollToEnd();

        }.bind(this))
        .catch(function(error) {

        });
    }.bind(this))
  },
  scrollToEnd: function() {     
    var container = this.$el.querySelector(".single-conversation");
    container.scrollTop = container.scrollHeight;
  },
}

Пример Codepen.

Теги:
vue.js
vuejs2

1 ответ

3
Лучший ответ

Вы пытаетесь прокрутить до конца представления сообщений до того, как messages были отображены. Перед прокруткой следует подождать до следующего тика:

this.messages = response.data;
this.$nextTick(() => this.scrollToEnd())

ваш код с необходимыми изменениями

Ещё вопросы

Сообщество Overcoder
Наверх
Меню