我在图形面板中有一个 svg。 svg 中的所有节点都在另一个面板中列出。我希望通过单击节点列表中的节点,svg 可以滚动到该节点。每个节点都是一个矩形。但我发现只有上边框在视图中,而节点的其余部分仍然在视图之外。有什么办法可以解决这个问题吗? (Javascript 或 Extjs)
这是我的代码:
function selectRectangle(Id){
var ele = Ext.get(Id);
ele.scrollIntoView(Ext.get('graph-panel-body'), true);}
无论出于何种原因,scrollIntoView 似乎不适用于 SVG 元素。这就是我所做的
假设 svg 位于
<div id="container">
<svg ...>
...
<path id> ...</path>
</svg>
</div>
然后假设在变量“element”中您有要滚动到View的元素
var bbox = ele.getBBox()
var top = bbox.y + bbox.y2
top = 50 * Math.floor(top/50)
$("#container").get(0).scrollTop=top
我不确定,但我观察到getBBox
是相当慢的。所以要小心。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)