2017-08-16 1 views
-1

Ich schreibe eine Mind Map mit d3.js. Wenn ein Knoten viele untergeordnete Elemente enthält, sind einige davon im Browserfenster nicht sichtbar. Ich unterstütze die Navigation durch Knoten mit den Pfeiltasten auf/ab/links/rechts.Detect Svg-Element außerhalb des Browser-Fensters

Das Problem ist: Wenn ich zu Knoten navigiere, die nicht sichtbar sind (außerhalb des Browserfensters), scrollt der Browser nicht automatisch, um diesen Knoten anzuzeigen. Wie kann ich im Fenster blättern, um den entsprechenden Knoten anzuzeigen? Ich bin auf der Suche nach Browser-unabhängige Methode

+0

Welchen Code verwenden Sie gerade, um zu den Elementen zu scrollen? [mcve] (https://stackoverflow.com/help/mcve) –

+0

Keine. Ich habe über einige Lösungen gelesen, aber alle haben bemerkt, dass sie nicht unabhängig vom Browser sind. – Domnyk

+0

Erforsche das 'viewBox' Attribut. Er teilt dem Browser mit, welcher Teil des SVG im SVG-Ansichtsport angezeigt werden soll. –

Antwort

0

Sorry für lange Zeit ohne Antwort. Ich endete mit getBoundingClientRect(). Für jeden Knoten nenne ich diese Funktion, und wenn:

  1. oben < 0 oder
  2. links < 0 oder
  3. Boden> window.innerHeight
  4. rechts> window.innerWidth

I Rufen Sie translate auf meinem Wurzelknoten auf, der Baum bewegt.

Verwandte Themen