2

Raphael JS で要素のセット全体をフロントに移動する方法を誰かが教えてくれることを期待していました。

私はいくつかの動的に生成された raphael 要素のセットを使用しています。それぞれが配列に格納されているため、個々のセットとのやり取りやターゲット設定が容易になります。ユーザーがさまざまなセットを操作するとき、フル セットをアプリケーションの前面に表示できるようにしたいと考えています。

ここで概説されているように、.toFront() を使用してみました: http://raphaeljs.com/reference.html#Element.toFront

ただし、これは正しく機能していません。各セットには、円または円セクター、テキスト要素、および追加の円または追加セクターが含まれます。

何か案は?いずれの時点でも、ユーザーはこれらのセットを最大 40/50 持つ可能性があるため、セットを前面に出すことが必要になります。

4

1 に答える 1

2

私は toFront() 関数で同様の問題を抱えていました...まあ、それを行うには2つの方法があると思います...最初の方法(あまりお勧めしません)は、セットのすべての要素にループを適用してもたらしますそれらを前面に配置しますが、それでもセット内のシーケンスに従って順序付けられます....良いアプローチではありません... set.forEach(el){ e.toFront();}

2番目のものは本当にセクシーです:)私のお気に入り:)ここでミスターphrogzによって美しく説明されています

「g」タグを使用することをお勧めします... シンプルな JavaScript . すべてのセットを ag タグで囲みます

var mySet = document.createElementNS("http://www.w3.org/2000/svg", "g");
mySet.setAttribute('id','myset');
//should look something like this
//use jQuery append or javaScript appendChild to add your set elements to this group
<g id = 'myset'>
      <rect>
      <circle>
      //etc etc
    </g>

       mySet.parentNode.appendChild(mySet); //the key line

これは単純にsvgコンテナの一番下に移動するため、最後に描画され、リンクのmister phrogzによっても言及されているペインターモデルに従って一番上に表示されます.... JavaScriptを使用して独自のz-indexを操作できますもし必要なら...

于 2012-08-18T00:18:59.867 に答える