element-ui中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)
下面的内容来自 https://developer.mozilla.org/zh-CN/docs/Web/API/Element/scrollIntoView 有兴趣的可以看看
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"。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)