假設用戶開始移動鼠標並停在瀏覽器的某處。我怎樣才能確定啓動和停止點與JavaScript/JQuery的?如何確定鼠標光標的起點和終點?
起始點很簡單,我可以通過mousemove事件得到它,但停止點呢?
我不能使用mouseenter或mouseleave事件,因爲我的操場是窗口或文檔本身。
謝謝。
假設用戶開始移動鼠標並停在瀏覽器的某處。我怎樣才能確定啓動和停止點與JavaScript/JQuery的?如何確定鼠標光標的起點和終點?
起始點很簡單,我可以通過mousemove事件得到它,但停止點呢?
我不能使用mouseenter或mouseleave事件,因爲我的操場是窗口或文檔本身。
謝謝。
使用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>
的起始位置是位置時,首先被燒成鼠標移動事件。它會一直點火,直到鼠標停止移動。所以,如果你爲你的mousemove事件函數添加一個定時器(setTimeout/clearTimeout),你可以說在經過了一段時間後鼠標已經停止移動,而沒有調用mousemove函數。
您應該在mousemove上設置一個計時器,並且如果鼠標未在500ms內移動,您就知道這是最終位置。 –