问题描述
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可以。。。为什么呢
各位大佬如果知道可以评论区留下言~~~谢谢