Javascript 如何确定鼠标光标的起点和终点?
假设用户开始移动鼠标并在浏览器上的某个位置停止。如何使用Javascript/Jquery确定起点和终点 起点很简单,我可以通过mousemove事件获得它,但停止点呢 我不能使用mouseenter或mouseleave事件,因为我的游乐场是窗口或文档本身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
谢谢。使用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毫秒内没有移动,您知道这是结束位置。