javascript - scrollIntoView() 没有将节点滚动到树的顶部

标签 javascript jquery scroll fancytree

scrollIntoView() 函数有问题。 我有一棵树和两个按钮:

  1. 首先将树滚动到底部节点
  2. 第二个将树滚动到顶部节点

我不知道我应该怎么做,这个滚动操作总是将节点滚动到树的顶部。我的意思是这个 fiddle 的情况:

http://jsfiddle.net/presto41/xzb62pw5/8/

如果您单击按钮 #button1(滚动到底部节点),那么树将滚动到底部节点 - 但底部节点不会位于树的顶部。它的工作方式为“仅显示节点。完成”。

在这种情况下,我希望滚动到底部节点将像滚动到顶部节点一样工作:

  1. 点击#button1(滚动到底部节点)
  2. 点击#button2(滚动到顶部节点)
  3. topNode在树的顶端

有什么想法吗?我试图通过 options 操纵这个 scrollIntoView() 函数但要么我做错了什么,要么它不能像我预期的那样工作。


Edit: I don't understand why anyone give me minus for that question. I made a research, I was trying to solve that problem by myself and I put clear description of my problem. It's irritating.


Edit 2: I haven't ids of these nodes. I've got just node as Fancytree.FancytreeNode object so I need a solution without operation on the node id.


Edit 3: this is my pseudocode witch is the most similar with original: http://jsfiddle.net/presto41/xzb62pw5/27/

最佳答案

我找到了解决方案。 解决方案是函数:

function expandAndScrollTo(node) {
       node.setExpanded(true).then(()=>{
       node.span.scrollIntoView({behavior:'smooth', inline:'start'});
  });}

关于javascript - scrollIntoView() 没有将节点滚动到树的顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55918696/

相关文章:

javascript - 将函数附加到数组

javascript - React Component 的 onClick 处理程序未绑定(bind)到 "this"

javascript - Angular 1.5 创建一个表避免重复值

javascript - 带有切换按钮的菜单栏

iphone - 在 Modal 中滚动使 Safari 上的背景滚动

html - div,不触发水平滚动

javascript - 单击按钮时如何将动态创建的 div 附加到当前 mainDiv 而不是所有 mainDiv

jquery - Openfire 3.9.3 中的消息 Carbon 问题 - 未在所有登录设备中获取 Carbon 消息

javascript - 使后退按钮将页面滚动到页面顶部

html - 动态限制滚动高度