假设用户开始移动鼠标并停在浏览器上的某个位置。如何确定使用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>