假设用户开始移动鼠标并停在浏览器的某个位置。如何使用Javascript / Jquery确定起点和终点?
起点很简单,我可以用mousemove事件来获取它,但是停止点呢?
我无法使用mouseenter或mouseleave事件,因为我的游乐场是窗口或文档本身。
谢谢。
答案 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函数就停止了移动。