[element-ui] el-tree 滚动到指定选中的位置

在这里插入图片描述

<el-tree
   ref="tree"
   v-loading="treeLoading"
   :data="treeData"
   :props="treeProps"
   node-key="id"
   :expand-on-click-node="false"
   :highlight-current="true"
   :filter-node-method="filterNode"
   :default-expanded-keys="expandedKeys"
   :render-after-expand="false"
   @node-click="handleNodeClick">
     <span
        slot-scope="{ node, data }"
        class="custom-tree-node"
      >
        <span :id="data.id">{{ node.label }}</span> // 通过自定义节点,给每个节点一个id
      </span>
</el-tree>
selectedRegion(item) {
    if (Object.keys(item).length === 0) {
       return
     }
     this.expandedKeys.push(item.parentId)
     this.$refs.tree.setCurrentKey(item.regionId)       //通过 key 设置某个节点的当前选中状态,使用此方法必须设置 node-key 属性
     const node = document.getElementById(item.regionId) // 通过Id获取到对应的dom元素
     setTimeout(() => {
       if (node) {
         this.$nextTick(() => {
           node.scrollIntoView({ block: 'center' }) // 通过scrollIntoView方法将对应的dom元素定位到可见区域 【block: 'center'】这个属性是在垂直方向居中显示
        })
       }
     }, 100)

Element 接口的scrollIntoView()方法会滚动元素的父容器,使被调用scrollIntoView()的元素对用户可见

element.scrollIntoView(); // 等同于element.scrollIntoView(true)
element.scrollIntoView(alignToTop); // Boolean型参数
element.scrollIntoView(scrollIntoViewOptions); // Object型参数

alignToTop可选
一个Boolean值:
如果为true,元素的顶端将和其所在滚动区的可视区域的顶端对齐。相应的 scrollIntoViewOptions: {block: "start", inline: "nearest"}。这是这个参数的默认值。
如果为false,元素的底端将和其所在滚动区的可视区域的底端对齐。相应的scrollIntoViewOptions: {block: "end", inline: "nearest"}。

scrollIntoViewOptions 可选
一个包含下列属性的对象:
behavior 可选
定义动画过渡效果, "auto""smooth" 之一。默认为 "auto"。
block 可选
定义垂直方向的对齐, "start", "center", "end","nearest"之一。默认为 "start"。
inline 可选
定义水平方向的对齐, "start", "center", "end","nearest"之一。默认为 "nearest"


element-ui中tree树形组件 通过搜索定位到对应的树节点,并展示在可见区

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值