0

埋め込まれた SVG ドキュメントをスクロールするために、別の SVG ドキュメント内に SVG ドキュメント (実際には 3 つ) を含める必要があります。

Batik を使用しJSVGCanvasて Java アプリケーション内に表示します。そのキャンバスを に配置しJScrollPane、キャンバスのサイズを非常に大きなサイズに設定すると、大量のメモリが消費さJSVGCanvasれるため (メモリ効率がよくないようです)、viewBox を使用して SVG の表示部分を減らすことを考えました。属性を使用し、SVG Scrollbarsを使用してドキュメント内をスクロールします。

しかし、タグを介して SVG を SVG 内に埋め込むと、<image>そのドキュメントは別の SVG ドキュメントとしてではなく、画像としてのみインポートされるようです。<desc>またはタグでさえ、<title>要素に関するツールチップを提供するために評価されません。また、埋め込み SVG に動的機能が必要です (一部の要素はクリック可能である必要があり、Java アプリケーションでそれらのクリックのハンドラーを提供します)。また、実行時に埋め込まれた SVG DOM を変更する必要があります。Batik 内から埋め込まれた SVG にアクセスする方法がわかりません。

これはすべて不可能のようです。<image>タグを誤解していますか?動的機能を維持しながら、SVG ドキュメントを別の SVG ドキュメント内に埋め込む別の方法はありますか?

私がやろうとしていることは、次のようなものです。

 +-------------------------------------------------------------+
 |+-----------------------------------------------------------+|
 ||                                                           ||
 ||                  upper embedded SVG                       ||
 ||                                                           ||
 |+-----------------------------------------------------------+|
 |+-----------------------------------------------------------+|
 ||                                                           ||
 ||                                                           ||
 ||                                                           ||
 ||                  lower embedded SVG                       ||
 ||                                                           ||
 ||                                                           ||
 ||                                                           ||
 ||                                                           ||
 ||                                                           ||
 |+-----------------------------------------------------------+|
 |+-----------------------------------------------------------+|
 ||<               horizontal scrollbar                      >||
 |+-----------------------------------------------------------+|
 +-------------------------------------------------------------+

スクロールバーは、埋め込まれた上下の SVG の viewBox をスクロールする必要があります。しかし、DOM を変更するためにこれらのドキュメントにアクセスする必要があり、動的にする必要があります (マウスオーバー、クリックなどに反応します)。

4

1 に答える 1

1

<image>を使用して他の SVG を埋め込む必要はありません。1 つを別の中に持つことは合法<svg>です。例えば:

<svg>
  <svg id="upper">
     ...etc...
  </svg>
  <svg id="lower" y="200px">
     ...etc...
  </svg>
</svg>

あなたはそれを試しましたか?

于 2013-09-28T01:56:42.667 に答える