当前位置: 首页 > news >正文

如何定位el-tree中的树节点当父元素滚动时如何定位子元素

使用到的方法

Element 接口的 scrollIntoView() 方法会滚动元素的父容器,使被调用 scrollIntoView() 的元素对用户可见。
参数
alignToTop可选
一个布尔值:
如果为 true,元素的顶端将和其所在滚动区的可视区域的顶端对齐。相应的 scrollIntoViewOptions: {block: “start”, inline: “nearest”}。这是这个参数的默认值。
如果为 false,元素的底端将和其所在滚动区的可视区域的底端对齐。相应的 scrollIntoViewOptions: {block: “end”, inline: “nearest”}。
scrollIntoViewOptions 可选 实验性
一个包含下列属性的对象:
behavior 可选
定义滚动是立即的还是平滑的动画。该选项是一个字符串,必须采用以下值之一:
smooth:滚动应该是平滑的动画。
instant:滚动应该通过一次跳跃立刻发生。
auto:滚动行为由 scroll-behavior 的计算值决定。
block 可选
定义垂直方向的对齐,start、center、end 或 nearest 之一。默认为 start。
inline 可选
定义水平方向的对齐,start、center、end 或 nearest 之一。默认为 nearest。

详细参考mdn传送门

测试效果图

点击按钮快速定位到子节点
在这里插入图片描述

测试代码

<!-- eslint-disable eqeqeq -->
<!-- eslint-disable no-undef -->
<template><div><div style="width: 200px;height: 200px;overflow: auto;"><el-tree :data="data" node-key="id" default-expand-all :props="defaultProps"><span slot-scope="{ node, data }"><span :id="data.id">{{ node.label }}</span></span></el-tree></div><el-button type="primary" style="margin-top: 100px;" @click="handleClick">主要按钮</el-button></div>
</template>
<script>
export default {data() {return {data: [{id: 1,label: '一级 1',children: [{id: 4,label: '二级 1-1',children: [{id: 9,label: '三级 1-1-1'}, {id: 10,label: '三级 1-1-2'}]}]}, {id: 2,label: '一级 2',children: [{id: 5,label: '二级 2-1'}, {id: 6,label: '二级 2-2'}]}, {id: 3,label: '一级 3',children: [{id: 7,label: '二级 3-1'}, {id: 8,label: '二级 3-2'}]}, {id: 4,label: '一级 4',children: [{id: 9,label: '二级 4-1'}, {id: 10,label: '二级 4-2'}]}, {id: 5,label: '一级 5',children: [{id: 11,label: '二级 5-1'}, {id: 12,label: '二级 5-2'}]}],defaultProps: {children: 'children',label: 'label'}}},async mounted() {},methods: {handleClick(){let node = document.getElementById('10')this.$nextTick(()=>{node.scrollIntoView()})}},}
</script><style lang="scss" scoped></style>
http://www.lryc.cn/news/235396.html

相关文章:

  • 【WiFI问题自助】解决WiFi能连上但是没有网的问题
  • 论文阅读:JINA EMBEDDINGS: A Novel Set of High-Performance Sentence Embedding Models
  • 计数排序.
  • flink中配置Rockdb的重要配置项
  • 代码随想录二刷 | 数组 | 有序数组的平方
  • 基于单片机C51全自动洗衣机仿真设计
  • 「Verilog学习笔记」实现3-8译码器①
  • Centos(Linux)服务器安装Dotnet8 及 常见问题解决
  • 最强人工智能ChatGPT引领AIGC发展
  • 10.Oracle的同义词与序列
  • 【周报2023-11-10】
  • 搜维尔科技:业内普遍选择Varjo头显作为医疗VR/AR/XR解决方案
  • 数据结构02附录01:顺序表考研习题[C++]
  • ClientDateSet:Cannot perform this operation on a closed dataset
  • python中列表的基础解释
  • 『力扣刷题本』:链表分割
  • FISCOBCOS入门(十)Truffle测试helloworld智能合约
  • Unity Text文本首行缩进两个字符的方法
  • TS的函数重载、类型合并、类型断言
  • JVM:字节码文件,类的生命周期,类加载器
  • 【IPC】消息队列
  • 内网穿透工具NPS(保姆级教程)
  • 最长公共子序列问题
  • 服务器数据恢复—热备盘同步中断导致Raid5数据丢失的数据恢复案例
  • 桥接模式-C++实现
  • PHP字符串函数的解析
  • 科研学习|研究方法——使用python强大的Statsmodel 执行假设检验和线性回归
  • 设计模式——责任链模式
  • nginx得if语句内proxy_pass不允许携带url部分,如何处理
  • CentOS7设置 redis 开机自启动