Ответ 1
Поразите эту ссылку, чтобы получить полное объяснение одного подхода, который, как вам кажется, является тем, что вы ищете.
http://www.faqts.com/knowledge_base/view.phtml/aid/14742/fid/53
Здесь выдержка:
Затем этот обработчик устанавливает событие захват для движения мыши и магазинов положения курсора мыши в переменных mouseX и mouseY. Затем он запускает монитор таймераMouse(), который измеряет скорость курсора мыши путем выборки значения в этих переменных при регулярных интервалы. Переменные mouseLeft и mouseTop удерживают каждую пробоотборную мышь позиции и частота дискретизации установлен на 100 миллисекунд в переменный monitor.timerDelay.
И некоторые из кода автора:
nn4 = (document.layers)? true:false;
mouseLeft = mouseTop = mouseX = mouseY = 0;
monitor = {
timerDelay:100,
moveLimit:2,
sampleLimit:10
};
function startMonitor(thisText) {
if (!tip) return;
toolTipText = thisText;
writeTooltip(toolTipText);
document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = function (evt) {
mouseX = evt.pageX;
mouseY = evt.pageY;
return true;
}
monitorMouse();
}
function stopMonitor() {
if (!tip) return;
hideTooltip();
if (monitor.timer) {
clearTimeout(monitor.timer);
monitor.timer = null;
}
document.releaseEvents(Event.MOUSEMOVE);
document.onmousemove = null;
monitor.slowSamples = 0;
}
function monitorMouse() {
if (Math.abs(mouseX - mouseLeft) > monitor.moveLimit
|| Math.abs(mouseY - mouseTop) > monitor.moveLimit)
{
monitor.slowSamples = 0;
}
else if (++monitor.slowSamples > monitor.sampleLimit) {
showTooltip();
return;
}
mouseLeft = mouseX;
mouseTop = mouseY;
monitor.timer = setTimeout("monitorMouse()",monitor.timerDelay);
}