假设用户开始移动鼠标并停在浏览器的某处。我怎样才能确定启动和停止点与JavaScript/JQuery的?如何确定鼠标光标的起点和终点?
起始点很简单,我可以通过mousemove事件得到它,但停止点呢?
我不能使用mouseenter或mouseleave事件,因为我的操场是窗口或文档本身。
谢谢。
假设用户开始移动鼠标并停在浏览器的某处。我怎样才能确定启动和停止点与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>
的起始位置是位置时,首先被烧成鼠标移动事件。它会一直点火,直到鼠标停止移动。所以,如果你为你的mousemove事件函数添加一个定时器(setTimeout/clearTimeout),你可以说在经过了一段时间后鼠标已经停止移动,而没有调用mousemove函数。
您应该在mousemove上设置一个计时器,并且如果鼠标未在500ms内移动,您就知道这是最终位置。 –