Как определить начальную и конечную точки курсора мыши? - PullRequest
1 голос
/ 01 сентября 2011

Допустим, пользователь начинает двигать мышь и останавливаться где-то в браузере.Как я могу определить начальную и конечную точку с помощью Javascript / Jquery?

Начальная точка проста, я могу получить ее с помощью события mousemove, но как насчет точки остановки?

Я не могу использовать mouseenter илисобытия mouseleave, потому что моя игровая площадка - это окно или сам документ.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 01 сентября 2011

с использованием комбинации 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>
0 голосов
/ 01 сентября 2011

Начальным местоположением является местоположение, когда событие mousemove запускается впервые.Он будет продолжать стрелять, пока мышь не перестанет двигаться.Таким образом, если вы добавите таймер (setTimeout / clearTimeout) к вашей функции события mousemove, вы можете сказать, что мышь перестала двигаться после того, как прошло определенное время без вызова функции mousemove.

...