繁体   English   中英

如何在 vueJS 中滚动查看新添加的列表项

[英]how do a do a scroll in to view for a newly added list item in vueJS

我正在使用 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 : {
   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 = ""
      }
     }
 },

我这样解决我的问题

我给了我的无序列表一个 id="taskListul"

在方法中我添加了一个 function:

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

我在 vue 实例的更新方法中调用了这个 function

updated() {
    this.scrollToEndOfTask()
  },

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM