2016-08-24 10 views
0

私は、ボクセルペインター1のthree.jsページの例を使用しようとしています。この例では、マウス座標を使用して、クリック後にボックスが配置される位置を示すロールオーバーヘルパーを移動します。HTMLページ上のマウス座標

mouse.set((event.clientX/window.innerWidth)*2-1, -(event.clientY/window.innerHeight)*2+1); 

このコードは、ページ全体のマウスの位置を計算します。 webGLキャンバスのスペースの合計がページ内のスペースの総量と異なるように、ページに他のdiv要素を追加しました。webGLキャンバスの新しい寸法は、全高の95%で、85%総幅の

私のwebGL canavas上のマウス位置は明らかに異なります。したがって、ロールオーバーヘルパーはマウスの位置と重複しません。どのように私は上記のコードを修正する必要がありますか?

+0

例のページのように、すべての例がiframeでラップされるので、window.innerWidth/window.innerHeightはiframeの高さと幅を参照します –

答えて

0

あなたが渡された任意のjQueryオブジェクトをオフに動作し、マウスの位置を検出するためのjQueryを使用することができますそれに。

$(function() { 
    var xCoord, yCoord; 
    $(document).on("mousemove", function(event) { 
    xCoord = event.pageX; 
    yCoord = event.pageY; 
    console.log("x: "+ xCoord+ ", y: "+ yCoord); 
    }); 
}); 

jQueryセレクタをキャンバスに変更するだけで、jQueryが残りの部分を処理します。

希望すると便利です。

+1

ヒント:jQueryの使用をやめてください。 – Pawel

+0

ありがとうございました!マウスの座標はページ全体に関連しており、必要なdiv要素だけでなく、 –

+0

キャンバスを使用して、マウスを正しくトリガーするものを表示していますか?私があなたに与えた例は、全体の文書、はいを参照します。ただし、参照オブジェクトをdivまたはキャンバスに変更することも、情報を表示するオブジェクトを変更することもできます。あなたはCSSスタイリングをさらに進め、obj(0、0)の左上隅を相対位置に設定し、event.pageX/Yはそのコーナーに対応する座標を返します。 – Turk

0

あなたのページ上のマウスカーソルのグローバルな位置をしたい場合、あなたはかなりのページを使用する必要がありますが、このように座標:

event.pageX 
event.pageY 
関連する問題