1

簡単なコードでマウスの位置を取得します。

$("#container").mousemove( function(e) {

    client_x = e.pageX;
    client_y = e.pageY;

        // save coordinates

});

しかし、マウスの方向が変わったときの開始座標と停止座標+座標だけが必要なので、マウスの動きを「コピー」できます。

マウスが一定時間停止したかどうかを確認するには、ある種のタイマーが必要だと思いますか?

4

1 に答える 1

2
var timer, timer2 = 0, client_x, client_y; //I made them global since it's easier
$("#container").mousemove( function(e) {
  clearTimeout(timer);
  client_x = e.pageX;
  client_y = e.pageY;
  if((new Date()).getTime() > timer2 + 2000) {
    timer2 = (new Date()).getTime(); //just in case this event handler gets called again before the timer runs doCopy
    setTimeout(doCopy, 1); //run "outside" the event handler (since it's not good for an event handler to take a long time
  } else {
    timer = setTimeout(doCopy, 1000);
  }
});

function doCopy() {
  timer2 = (new Date()).getTime();
  .....
}

これは、タイマーの設定とクリアを常に行っています。マウスが 1 秒間停止すると、doCopy()関数がトリガーされます。

于 2012-08-27T09:53:18.127 に答える