Моя цель - определить направление последнего движения мыши перед срабатыванием события mouseup.
Чтобы избежать проверки небольших непроизвольных движений (например: я иду с мышью вправо на 100 пикселей и затем останавливаюсьно невольно сделайте 2 пикселя влево) Я подтвердил бы направление только после того, как указатель мыши достиг минимального безопасного расстояния (промежутка) от последней точки, где он изменил свое направление.
Вот упрощение моегореализация:
var direction = "",
oldx = 0,
invert = 0,
gap = 10,
move = "",
mousemovemethod = function (e) {
if (e.pageX < oldx) {
if(direction == "right") invert = e.pageX;
direction = "left";
if(e.pageX < invert - gap) move = "left";
} else if (e.pageX > oldx) {
if(direction == "left") invert = e.pageX;
direction = "right"
if(e.pageX > invert + gap) move = "right";
}
document.body.innerHTML = "moving " + direction + ", last inversion point: " + invert + ", Validated movement: " + move;
oldx = e.pageX;
}
document.addEventListener('mousemove', mousemovemethod);
А вот и скрипка
Код работает, но мне кажется многословным и неясным.Я всегда был плох в реализации такого рода, и мне было интересно, знает ли кто-нибудь более изящный способ работы с этой механикой.
Любое предложение приветствуется.