Вызов функции через ms секунд при mousemove
var timerId = (function(){ },0); // устанавливаем таймер, чтобы потом при событии onmousemove //clearTimeout работал document.body.onmousemove=function(){ clearTimeout(timerId); timerId = setTimeout(function(){ console.log('yes'); },100); } коряво работает блин(( JSfiddle |
(function() { var timerID; function timer() { console.log(true); }; document.body.onmousemove = function() { clearTimeout(timerID); timerID = setTimeout(timer, 300); }; })(); Точно mousemove? Может mouseover? |
mousemove, так как часто очень вызывается... поэтому заглушку такую хотел поставить , но твой пример не работает, вызывается не с интервалом 300ms (((
|
есть в js события которые слишком часто вызываются это mousemove или scroll ну и чтобы обработчик события слишком часто не вызывался я хотел написать функцию заглушку через setTimeout
типо проводишь ты мышкой по body в течение 3 с и обработчик события вызвался бы 10 раз так как setTimeout ({}300ms) |
(function() { var startTime = new Date().getTime(); function timer() { console.log(true); }; document.body.onmousemove = function() { var time = new Date().getTime(); if(time - startTime >= 300) { startTime = time; timer(); } }; })(); |
спасибо
|
Часовой пояс GMT +3, время: 14:25. |