2017-08-16 97 views
-1

我正在使用d3.js编写心智图。当一个节点包含很多孩子时,其中一些孩子在浏览器窗口中不可见。我使用上/下/左/右键支持通过节点进行导航。在浏览器窗口外检测svg元素

问题是:当我导航到不可见的节点(浏览器窗口之外)时,浏览器不会自动滚动以显示此节点。我怎样才能滚动窗口显示适当的节点?我正在寻找独立于浏览器的方法

+0

你目前使用什么代码来滚动到元素? [mcve](https://stackoverflow.com/help/mcve) –

+0

无。我阅读了一些解决方案,但他们都注意到它们不是独立于浏览器的。 – Domnyk

+0

研究'viewBox'属性。它告诉浏览器在SVG视图端口中显示哪部分SVG。 –

回答

0

对不起,很长时间没有响应。我结束了使用getBoundingClientRect()。对于每个节点我调用此函数,并且如果:

  1. 顶部< 0或
  2. 左< 0或
  3. 底部> window.innerHeight
  4. 右> window.innerWidth

我调用移动树的根节点上的翻译。