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

08-07 23:23