2011-02-17 14 views
1

キャンバス内の要素のzindexを変更するにはどうすればよいですか?htmlキャンバスzindex

例コード:fabric.jsライブラリを使用して

fabric.Image.fromURL('http://nocookie.net/bw.jpg', function(image) { 
    image.set('left', 200).set('top', 250); 
    canvas.add(image); 
}); 


var helloWorld = new fabric.Text('Hello world!', { 
    left: 0, 
    top: 0, 
    fontfamily: 'delicious_500', 
    zindex: 10 
}); 

canvas.add(helloWorld); 

。今後の参考のために

fabric.Element.html#bringForward

+0

あなたが例を投稿することができますか? [あなたは本当にキャンバスに要素*を持っていますか?](http://www.youtube.com/watch?v=Guwvwp0uSU8) – sdleihssirhc

+0

@sdleihssirhcは、何を意味するかを示すサンプルコードを投稿しました。私はイメージの上にテキストを設定できるようにしたい。 – Mark

+1

うわー、[fabric.js docs](http://kangax.github.com/fabric.js/docs/)は役に立ちません。 – sdleihssirhc

答えて

1

私はすべての作業を一顧のものを取得することはできませんが、ここで私の推測では、何が起こっているかのようだ:

  1. FabricはそのイメージのURLを要求します。ファブリックは、イメージが返されるときにコールバックメソッドが与えられているので、待機している間に次のタスクに移動します。
  2. ファブリックはTextオブジェクトを作成し、キャンバスに追加します。
  3. 最後に、イメージがロードされていることがわかります(私が実際に提供した具体的な例は私のところに404'd)、それをコールバックメソッドに渡します。後で追加されている事が既に存在しているものの上に描画されています

画像がテキストの後にキャンバスに追加されているので、私はファブリックキャンバスが通常と同じように機能していると仮定しています。 ...テキストにZインデックスを付けたとしても。

私はそれを働かせることができず、ちょうど諦めました。だから私は全く完全に間違っている可能性があります。その場合、別の理論があります。

確かにzindexは正しいプロパティですか?あなたがいる場合には、同様に、画像上でそれを設定してみてください:

image.set('left', 200).set('top', 250).set('zindex', 5); 

をそして、あなたわからない場合は、...そこに行きます。

+0

まあzindexは単なるランダムな推測です。 zIndexも無駄にしようとしました。本当の財産が何であるか分かりません。私はイメージを設定しようとしました。あなたの助けをありがとう+1、私はgoogleでキャンバスのAPIを見てみましたが、行っていません。 :( – Mark

+0

@mark私の最初のアイデアはどうですか?イメージの前に 'helloWorld'を宣言し、イメージを追加した後にキャンバスに追加してください(つまり' canvas.add(helloWorld) 'をそれは*内部*画像機能です) – sdleihssirhc

+0

それはトリックでした!ありがとう!申し訳ありません、私はあなたがそれを初めて言ったときの意味を理解していませんでした。:P残念ながら、キャンバスのzindexのapiコマンドをまだ見つけられていないので、質問のタイトルは現在誤解を招いています。しかし、それは私の現在の問題をとても大きく解決してくれます。 – Mark

1

fabric.jsバージョン1.1.4のZIndexの操作のための新しい方法が提供されていますので:

canvas.moveTo(object, index); 
object.moveTo(index); 

私は、これはあなたが望むものであると思います:

http://jsfiddle.net/Kienz/RRv3g/

関連する問題