Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何确定鼠标光标的起点和终点?_Javascript_Javascript Events_Mouseevent_Jquery - Fatal编程技术网

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

Javascript 如何确定鼠标光标的起点和终点?,javascript,javascript-events,mouseevent,jquery,Javascript,Javascript Events,Mouseevent,Jquery,假设用户开始移动鼠标并在浏览器上的某个位置停止。如何使用Javascript/Jquery确定起点和终点 起点很简单,我可以通过mousemove事件获得它,但停止点呢 我不能使用mouseenter或mouseleave事件,因为我的游乐场是窗口或文档本身 谢谢。使用setTimeout和clearTimeout的组合。 如果用户在x秒内没有移动,则表示他已停止 在这里,我给你写了一个例子: <script type="text/javascript"> var lastM

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

var lastMove=0;
var lastTimeout=0;
jQuery(文档).ready(函数(){
$(文档).mousemove(函数(e){
$('#status').html(e.pageX+,'+e.pageY);
var currentMove=(新日期()).getTime();
如果(lastTimeout!=0){
clearTimeout(lastTimeout);
}
如果(当前移动-最近移动>1500)
{alert('started');}
lastMove=currentMove;
lastTimeout=setTimeout(函数(){
var currentMove=(新日期()).getTime();
如果(当前移动-最近移动>1500)
{alert('stopped');}
}, 1510);
});
})
0, 0

开始位置是首次触发mousemove事件的位置。它会一直开火直到鼠标停止移动。因此,如果在mousemove事件函数中添加计时器(setTimeout/clearTimeout),则可以说鼠标在经过一定时间后停止移动,而没有调用mousemove函数。

您应该在mousemove上设置计时器,如果鼠标在500毫秒内没有移动,您知道这是结束位置。