2011-09-01 45 views
1

假設用戶開始移動鼠標並停在瀏覽器的某處。我怎樣才能確定啓動和停止點與JavaScript/JQuery的?如何確定鼠標光標的起點和終點?

起始點很簡單,我可以通過mousemove事件得到它,但停止點呢?

我不能使用mouseenter或mouseleave事件,因爲我的操場是窗口或文檔本身。

謝謝。

+0

您應該在mousemove上設置一個計時器,並且如果鼠標未在500ms內移動,您就知道這是最終位置。 –

回答

3

使用setTimeout和clearTimeout的組合。 如果用戶沒有移動x秒的數量,那麼這意味着他停了下來。

在這裏,我給你寫了一個例子:

<script type="text/javascript"> 
    var lastMove = 0; 
    var lastTimeout = 0; 
    jQuery(document).ready(function() { 
     $(document).mousemove(function (e) { 
      $('#status').html(e.pageX + ', ' + e.pageY); 
      var currentMove = (new Date()).getTime(); 
      if (lastTimeout != 0) { 
       clearTimeout(lastTimeout); 
      } 
      if (currentMove - lastMove > 1500) 
      { alert('started'); } 
      lastMove = currentMove; 
      lastTimeout = setTimeout(function() { 
       var currentMove = (new Date()).getTime(); 
       if (currentMove - lastMove > 1500) 
       { alert('stopped'); } 
      }, 1510); 
     }); 
    }) 
</script> 
<h2 id="status"> 
0, 0 
</h2> 
0

的起始位置是位置時,首先被燒成鼠標移動事件。它會一直點火,直到鼠標停止移動。所以,如果你爲你的mousemove事件函數添加一個定時器(setTimeout/clearTimeout),你可以說在經過了一段時間後鼠標已經停止移動,而沒有調用mousemove函數。