如何确定鼠标光标的起点和终点?

时间:2011-09-01 00:47:45

标签: javascript javascript-events mouseevent jquery

假设用户开始移动鼠标并停在浏览器的某个位置。如何使用Javascript / Jquery确定起点和终点?

起点很简单,我可以用mousemove事件来获取它,但是停止点呢?

我无法使用mouseenter或mouseleave事件,因为我的游乐场是窗口或文档本身。

谢谢。

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

起始位置是首次触发mousemove事件时的位置。它将继续射击,直到鼠标停止移动。因此,如果向mousemove事件函数添加一个计时器(setTimeout / clearTimeout),可以说鼠标在经过一段时间后没有调用mousemove函数就停止了移动。