2017-03-15 12 views
2

キャンバス内の特定の位置にクリックを適用するにはどうすればよいですか? (座標を使用して私に最も論理的だが、それを行う方法を見つけることができない、他のアイデアは歓迎されています)。キャンバスを作成するコードにはアクセスできません。キャンバス内の特定のポイント/要素(JavaScript、jquery、またはセレン)をクリックする方法はありますか

EDIT:キャンバスには、jqueryで選択できないが、クリックする必要がある複数の要素が描画されています。私は自分の座標を手動で見つけることができ、いくつかの計算を行うことができます。しかし、その位置にクリックイベントまたはマウスイベントを渡そうとするたびに、実際のマウスクリック(クリックされるべきボタンはそうではありません)

canvas.on('click', function(e) { 

    // calculate x y coordinates on canvas 
    var x = e.pageX - $(this).offset().left, 
    y = e.pageY - $(this).offset().top; 

    // implement collision detection via the coordinates the element you want to click (assuming you know where it is) 
    if (y > <elementY> && y < <elementY> + <elementHeight> 
     && x > <elementX> && x < <elementX> + <elementWidth>) { 
     alert('found it'); 
    } 
}); 

を試みるについて

答えて

0

どのように私は何時間そのスニペットをテストしていません。キャンバス内の要素のx座標とy座標を知っていれば、そのコードはちょうどそのトリックを行うかもしれません。私はそのスニペットを実行しようとしました何

elmentYelementY + elementHeightなどelementXelementX + elementWidthを経由してバウンディングボックスをシミュレートすることです。これらの値がすべて分かっている場合は、clickイベントの値がxyの値が該当するかどうかを確認するだけです。

編集

あなたは、特定の位置でクリックイベントをトリガ事前clickEventを定義し、pageXとpageY属性を設定したい場合。

var e = new jQuery.Event("click"); 
e.pageX = 10; 
e.pageY = 10; 
$(<canvas>).trigger(e); 

キャンバスのオフセットも計算に含める必要があります。

+0

しかし、座標を取得した後、そのポイントをクリックすると、後でどの機能を使用できますか? –

+0

あなたは特定の座標でクリックをトリガーしたいですか? – Micha

+1

キャンバスへの相対座標を使用してクリックイベントを渡しましたが、ページ全体に対して絶対的なものはありませんでしたが、まだ何もありません。 –

関連する問題