javascript – 如何制作一个svg元素(例如矩形)scrollIntoView?

我在图表面板中有一个svg. svg中的所有节点都列在另一个面板中.我希望通过单击节点列表中的节点,svg可以滚动到该节点.每个节点都是一个矩形.但我发现只有上边框在视图中,而节点的其余部分仍然在视图之外.有什么方法可以解决这个问题吗? (
Javascript或Extjs)

这是我的代码:

function selectRectangle(Id){
  var ele = Ext.get(Id);
  ele.scrollIntoView(Ext.get('graph-panel-body'), true);}

最佳答案 问题是你试图滚动视图的SVG元素可能有一个yy或dy属性从顶部偏移它,Chrome中的scrollIntoView方法没有考虑到这一点(在Firefox中),因此将滚动到顶部,因为它认为元素在那里,因为这是SVG元素定位的工作方式..元素都是从最左上角渲染的,然后通过x,y,dx“转换”到它们的位置, dy属性.

你可以(而且应该)加注一个开放的bug:

https://bugs.chromium.org/p/chromium/issues/detail?id=803440

点赞