2017-06-14 5 views
0

私はキャンバスを使用していますが、ラグラを使用する場合、いくつかの画像を描画します。 画像の名前はリストにあります:images_listと私は行のために3つの画像を描画します。すべての画像は同じ寸法で、等間隔で、.pngファイル(ベクトルなし)です。 いくつかのサンプルコード:Raphaelで画像をクリックすると認識する

var paper_images_list = Raphael(canvas_images_list, '100%', '100%'); 
var images_for_row=3 
var y_max=Math.ceil(image_list.length/images_for_row)*40 
paper_images_list.setSize(div_width, y_max); 
for (var i=0; i<image_list.length; i++) { 
     var col=parseInt(i/images_for_row) 
     var y=col*40 
     var x=(i-images_for_row*col)*40 
     var image = paper_images_list.image('/media/images/'+image_list[i], x, y, 33, 27); 
    }; 

私が欲しいもの:別の紙/キャンバスでの使用にそれをするために、私はあることどの画像を知りたい画像をクリックします。

私はそれが簡単にできると思ったので私はラファエルを使用していますが、多分私は間違っています。それをクリックするだけでイメージを認識できますか?

もしそうでなければ、私はクリックの座標を見つけてそこにある画像を計算することができますが、そのためにRaphaelは必要ありません。より良い解決策がありますか?

私はそれのようなので、簡単です見つけイアンにPhyton3.5、Djangoの1.9は、JavaScript/jQueryの、のWindows7

+1

あなたのクリックハンドラは、それがどれであるかを示すことができます。各要素にクリックハンドラがある場合、 'this'はそれぞれの画像を指します。ジェネリックハンドラがあれば、おそらくevent.targetを見ればわかります。 – Ian

答えて

0

おかげで使用しています:if文は任意の画像外でクリックを除外し

document.getElementById('canvas_images_list').onclick=function(event) { 
    var myimage = event.target 
    if (myimage.tagName == 'image') { 
     myimage = myimage.href.baseVal; 
    }; 
}; 

関連する問題