javascriptでページ上のマウスの位置を取得します.


使う?遣う javascript ページ上のマウス(カーソル)の位置を取得するには、ドラッグ&ドロップ、ストップメッセージ(tooltip)など、多くの場合に使用されます. など.もちろん、ここでは依然としてブラウザの対応問題に直面しています.ブラウザによって、これらの属性に関する処理方法は異なります.ここでは、ブラウザがこれらの属性を扱う際の違いと最終的な解決方法を詳しく紹介します. -------------------------------------------------------------- この点をクリックして例ファイルをブラウズします。------------------------Javascript:

  
  1.  
  2. <script type= "text/javascript">
  3.  
  4. // :
  5. // :http://www.codebit.cn
  6. // :http://www.webreference.com
  7.  
  8. function mousePosition (ev ) {
  9. if (ev. pageX || ev. pageY ) {
  10. return {x:ev. pageX, y:ev. pageY };
  11. }
  12. return {
  13. x:ev. clientX + document. body. scrollLeft - document. body. clientLeft,
  14. y:ev. clientY + document. body. scrollTop - document. body. clientTop
  15. };
  16. }
  17.  
  18. </script>
  19.  
上のコードは私達が持っています.   どう使いますか javascript ドラッグを実行 すでに紹介しましたが、この需要はよく使われていますので、このコードを独立して文章にして、初心者のために調べます.使用方法:コード:
document.onmousemove = mouse Move;
機能 mouse Move(ev){
    ev = ev || window.イベント;
    var mousePos = mouse Position(ev)

コードの詳細については、原文で紹介されていますが、ここに移ります.まず声明を出します.  evnet オブジェクトは、移動、クリック、ボタンなどに関係なく、一つアクティブになります. evnet ,はい、 インターネット Explorer ここで  イベント グローバル変数です. window.イベント ここ. はい、 firefox または他のブラウザ、イベント 対応する関数によって取得されます.私たちはmousemove関数をdocument.onmousemooveに割り当てます.mouse Move マウス移動イベントを取得します.譲るために ev すべてのブラウザで取得しました. イベント イベントは、Firefoxの下では、「𞓜window.event」は機能しません.はい、 MSIE にある ev 暇ですから、手に入れます. window.イベント .この文章ではマウスの位置を何回も取得する必要があるので、一つのデザインをしました. mouse Position 関数には、パラメータが含まれています. : イベント .私たちはここにいるから MSIE 他のブラウザで実行します.Firefox その他のブラウザ用 event.pageX 和 event.pageY をクリックして、ドキュメントに対するマウスの位置を表します. 500*500 あなたのマウスは絶対の真ん中にあります. pageX 和 pageY  の値は全部 250,下にスクロールしたら  500, では pageY になります 750.MSIE 反対に使う イベント. 和 イベント. ドキュメントではなく、マウスがウィンドウに相当する位置を表します.同じ例では、500を下にスクロールすると、clientY 相変わらずです 250です.ですから、追加が必要です. scrollLeft 和 scrollTop この2つのドキュメントに対する属性.最後に、MSIE からではなく、 0,0 最初は小さな枠があります. 2 ピクセル)、フレームのサイズは  Dcument.body.client Left 和 clientTop 私たちもこれらを入れます.幸いです.今はもう使いました. mouse Position 関数は座標問題を解決しました.このために気を使う必要はありません.