как выполнить прокрутку для просмотра вновь добавленного элемента списка в VueJS

#javascript #vue.js

#javascript #vue.js

Вопрос:

Я использую VueJS для создания приложения для просмотра задач

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

ниже приведен мой HTML-код в шаблоне для списка задач

 <ul>
  <li
          v-for="task in filteredTasks"
          :key="task.id"
          id="taskListItem"
          ref="taskListItem"
          class="taskList d-flex align-items-center justify-content-between"
        >
        <span> {{ task.name }} </span>
  </li>
</ul>

 

ниже приведены мои функции в computed и методы добавления и фильтрации задач

скрипт

 
 computed : {
   filteredTasks() {
      return this.selectedUsers.length
        ? this.filteredOnProgress.filter((task) =>
            task.userIds.some((id) => this.selectedUsers.includes(id))
          )
        : this.filteredOnProgress;
    },
}

methods : {
    addTaskName(){
      if (this.newTaskName.name != "") {
      this.addTask(this.newTaskName)
      this.newTaskName.name = ""
      }
     }
 },
 

Ответ №1:

Я решаю свою проблему следующим образом

Я дал моему неупорядоченному списку идентификатор =»taskListul»

и в методах я добавил функцию:

   scrollToEndOfTask() {
      const taskScroll = this.$el.querySelector("#taskListul")
      const scrollHeight = taskScroll.scrollHeight
      taskScroll.scrollTop = scrollHeight
    },
 

Я вызвал эту функцию в методе обновления экземпляра vue

 updated() {
    this.scrollToEndOfTask()
  },