При перемещении курсора над элементом (подозреваю mousemove) требуется фиксировать два значения позиции курсора. Например по оси Х. Одно из них в настоящий момент, второе которое было, к примеру, 100 миллисекунд назад. Чтобы можно было их сравнить между собой.
Если над элементом, то решение очевидно:
var oArea = document.querySelector('.area');
var nVectorX, nVectorY, tCheck, bCheck;
oArea.addEventListener('mousemove', function(event) {
if (!bCheck) { nVectorX = event.offsetX; nVectorY = event.offsetY; bCheck = true; }
if (!tCheck) {
tCheck = setTimeout(function() {
if (nVectorX > event.offsetX) {
oArea.innerHTML = ' LEFT (';
} else if (nVectorX < event.offsetX) {
oArea.innerHTML = ' RIGHT (';
} else {
oArea.innerHTML = ' X (';
}
oArea.innerHTML += nVectorX + '_' + event.offsetX + ') ';
if (nVectorY > event.offsetY) {
oArea.innerHTML += ' UP (';
} else if (nVectorY < event.offsetY) {
oArea.innerHTML += 'DOWN (';
} else {
oArea.innerHTML += ' Y (';
}
oArea.innerHTML += nVectorY + '_' + event.offsetY + ')';
if (nVectorY == event.offsetY && nVectorX == event.offsetX) {
oArea.innerHTML = 'STOP';
clearTimeout(tCheck);
}
nVectorX = event.offsetX;
nVectorY = event.offsetY;
tCheck = null;
}, 100);
}
});
.area {
width: 400px;
height: 180px;
margin: 0 auto;
cursor: crosshair;
border: 1px solid #090;
}
<pre class="area"></pre>
PS Извиняюсь, что не jQuery - ну, не люблю я его))
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости