1

マウス固有の動きを計算する方法を知りたいです。

マウスが A から B に移動したことを確認する方法についてアドバイスが欲しいです。

たとえば、win8 のように。マウスがウィンドウの端にあるときにドロップダウンすると、サイドバーが表示されます。

$(window).on('mousemove' function(e){
   if(e.pageX is on area of or close to the side of window){
      // how can I calculate if the mouse Y is from a point to a point??
      if(Y is moved from A to B){
          //do something
      }
   }
})
4

2 に答える 2

1

window幅を確認するだけで、 の左側を判断できます。

if(e.pageX >= ($(window).width() - 20))

マウスがウィンドウの右側から 20px 以内にあるかどうかを確認します。

どのくらい移動したかを確認するには、最後の既知の位置を記録してから比較する必要があります。たとえば、次のようにします。

var last_pos = { x: false, y: false },
 coord_check = $(window).width() - 20; // or whatever value from the right you want to check.

$(window).on('mousemove' function(e) {

    if(e.pageX >= coord_check)
    {
        // If they're null, we can't do anything:
        if((last_pos.x !== false && last_pos.y !== false) && ((e.pageX - last_pos.x) > 20)) {
            // you can access the current position through e.pageX and e.pageY
            // last_post.x and last_pos.y will tell you the last known position
        }
    }

    // Now we need to update the last position:
    last_pos.x = e.pageX;
    last_pos.y = e.pageY;

});
于 2013-02-17T19:44:53.517 に答える
1

制御する「領域」が必要であり、mousemove で最後と現在の領域を追跡し、レジスタ イベント ハンドラーに基づいて、A から B、C から X などのシナリオを処理する必要があります。 . :)

ここにタスクリスト:

  • x、y、幅、高さ、名前を持つ領域オブジェクトの配列を作成します
  • onmouse move では、現在のリージョンと異なる場合は現在のリージョンを確認し、以前のリージョンを現在のリージョンに設定し、現在のリージョン名を現在のリージョン名に変更します。
  • 変数イベントを前 + '-' + 現在に設定します
  • イベント位置にあるデータのイベントハンドラーの配列をチェックインし、そこで呼び出す関数がある場合

それが役に立てば幸い !

于 2013-02-17T19:47:21.033 に答える