添加元素,滚动到新元素,scroll的使用

如图,每次添加新元素,希望新元素能出现在视野内,删除新元素,也希望最后一个元素出现在视野内。

 // 添加
    addFilter() {
      let obj = {
        name: '',
        fieldRemarks: '',
        symbolType: '',
        symbolEnums: [],
        fieldEnum: '',
        fieldEnums: []
      };
      this.filterData.push(obj); //添加新元素
// 滚动,这里一定要使用this.$nextTick,因为js逻辑操作要在添加元素之后执行,否则最新元素永远都不在最下面视野之内。
      this.$nextTick(() => {
        this.scrollTo();
      });
    },
    scrollTo() {
      const parent = document.querySelector('#filterCriteriaCon');
      const child = document.getElementsByClassName('filter-criteria');
      console.log('lastChild', child[child.length - 1].offsetTop);
      parent.scrollTo({
        top: child[child.length - 1].offsetTop,
        behavior: 'smooth'
      });
    },
posted @ 2023-02-27 11:25  sinceForever  阅读(44)  评论(0编辑  收藏  举报