我遇到scrollIntoView()
函数的问题。
我有一棵树和两个按钮:
我不知道该滚动操作将节点始终滚动到树的顶部该怎么办。我的意思是关于这个小提琴的情况:
http://jsfiddle.net/presto41/xzb62pw5/8/
如果您单击按钮#button1 (Scroll to bottom node)
,则树将滚动到底部节点-但底部节点将不在树的顶部。它的工作方式是“只是显示节点。完成”。
在这种情况下,我希望滚动到底部节点可以像滚动到顶部节点一样工作
#button1 (Scroll to bottom node)
#button2 (Scroll to top node)
有什么想法吗?我试图通过options来操纵此scrollIntoView()
函数,但是我做错了什么,或者它无法按预期工作。
编辑:我不明白为什么有人给我这个问题的减号。一世 做研究,我正试图自己解决这个问题 清楚说明我的问题。太烦人了。
编辑2:我没有这些节点的ID。我只是节点 Fancytree.FancytreeNode对象,所以我需要没有操作的解决方案 在节点ID上。
编辑3:这是我的伪代码,与原始密码最相似: http://jsfiddle.net/presto41/xzb62pw5/27/
答案 0 :(得分:0)
使用scrollIntoView()可以将id =“ content”的元素滚动到浏览器窗口的可见区域:
var el = document.getElementById("content");
el.scrollIntoView();
可使用的方式
function scrollToBottom(){
var eldiv = document.getElementById("content");
eldiv.scrollTop = div.scrollHeight - div.clientHeight;
}
function scrollToTop(){
var eldiv = document.getElementById("content");
eldiv.scrollTop = 0;
}
答案 1 :(得分:0)
我找到了解决方案。 解决方法是功能:
function expandAndScrollTo(node) {
node.setExpanded(true).then(()=>{
node.span.scrollIntoView({behavior:'smooth', inline:'start'});
});}