element-plus 搜索 el-tree任意节点数据高亮并滚动定位到指定树节点

问题描述

el-tree 组织树,搜索任意组织树节点时,树节点高亮并且滚动条滚动到搜索的节点位置

解决方案:


  const leftTreeRef = leftTreeBox.value// 获取el-tree 的ref
  const curKey = treeRef.value.getNode(currentnode.value).key //获取搜索到的节点的key
  if (leftTreeRef && treeRef.value && curKey) {
    const curNode = treeRef.value.$el.querySelector(`.el-tree-node[data-key="${curKey}"]`)
// 获取搜索的节点元素
    if (curNode) {
      setTimeout(() => {
        curNode.scrollIntoView({ block: 'center' })// 使用scrollIntoView来滚动元素的父容器并定位到中间位置
      }, 1000)
    }
  }
treeRef.value?.setCurrentKey(saveCode[getTreeProps.value.value])
// 获取节点的value值 通过setCurrentKey 高亮节点

结果如上图所示,是可以实现的

但我有一个疑问是:

 setTimeout(() => {
        curNode.scrollIntoView({ block: 'center' })
      }, 1000)

这里为什么不可以使用nextTick ,我本地试了,不行。setTimeout可以。。。为什么呢

各位大佬如果知道可以评论区留下言~~~谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值