wchbrad / vue-easy-tree

A tree component based on vue2.x that supports a small amount of data or a large amount of data, multiple functions, and virtual scrolling.
MIT License
124 stars 39 forks source link

启用虚拟滚动,自动滚动到选中的节点位置 #24

Closed 361so closed 1 year ago

361so commented 1 year ago

启用虚拟滚动后,div中只有当前可视范围内的20几条数据,该如何通过外部点击使一个节点选中并且滚动到这个节点处呢?

361so commented 1 year ago

目前采用将外部指定的节点名称当作关键词搜索。

361so commented 1 year ago

请问.scrollToItem()有用吗? 在 #13 中我看示例中有,但是我写了没有作用

wchbrad commented 1 year ago

升级到v1.0.11版本,使用类似this.$refs["veTree"].setChecked(key,true)this.$refs["veTree"].scrollToItem(key)的方式滚动到目标节点。注意:如果目标节点是子节点,需要自己处理展开

361so commented 1 year ago

升级到v1.0.11版本,使用类似this.$refs["veTree"].setChecked(key,true)this.$refs["veTree"].scrollToItem(key)的方式滚动到目标节点。注意:如果目标节点是子节点,需要自己处理展开

已更新处理,谢谢!

wchbrad commented 1 year ago

客气了

long111321 commented 1 year ago

可以使选中的节点滚动到树列表的中间位置吗? 或者说,可以自动通过设置的方法自动调整树的滚动吗(比如点击某个按钮,滚动条自动向下滚动50像素的距离)

wchbrad commented 1 year ago

可以使选中的节点滚动到树列表的中间位置吗? 或者说,可以自动通过设置的方法自动调整树的滚动吗(比如点击某个按钮,滚动条自动向下滚动50像素的距离)

const virtualInstance = this.$refs["veTree"].$children[0]; const scrollDistance = 2000; virtualInstance.scrollToPosition(scrollDistance); 考虑使用上述方法拿到滚动组件实例,里面有一些方法可以供调用,使用一些hack方法可以达到你的目的 virtualInstance.scrollToItem(index)也可以使用,甚至可以使用virtualInstance.scrollToItem(index+10)这种方法来使滚动目标距离顶部10个item的位置

long111321 commented 1 year ago

谢谢,很完美