Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.11.2015, 12:45
Аватар для DynkanMaclaud
Профессор
Отправить личное сообщение для DynkanMaclaud Посмотреть профиль Найти все сообщения от DynkanMaclaud
 
Регистрация: 08.08.2014
Сообщений: 261

Вызов функции через ms секунд при mousemove
var timerId = (function(){
    
    
},0); 

 // устанавливаем таймер, чтобы потом при событии onmousemove                 //clearTimeout  работал


document.body.onmousemove=function(){
    
   clearTimeout(timerId);
    
    timerId = setTimeout(function(){
        
        console.log('yes');
        
    },100);
    
    
}


коряво работает блин((

JSfiddle

Последний раз редактировалось DynkanMaclaud, 06.11.2015 в 12:49.
Ответить с цитированием
  #2 (permalink)  
Старый 06.11.2015, 12:57
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

(function() {
     var timerID;

     function timer() {
          console.log(true);
     };

     document.body.onmousemove = function() {
          clearTimeout(timerID);
          timerID = setTimeout(timer, 300);
     };
})();


Точно mousemove? Может mouseover?
Ответить с цитированием
  #3 (permalink)  
Старый 06.11.2015, 13:03
Аватар для DynkanMaclaud
Профессор
Отправить личное сообщение для DynkanMaclaud Посмотреть профиль Найти все сообщения от DynkanMaclaud
 
Регистрация: 08.08.2014
Сообщений: 261

mousemove, так как часто очень вызывается... поэтому заглушку такую хотел поставить , но твой пример не работает, вызывается не с интервалом 300ms (((
Ответить с цитированием
  #4 (permalink)  
Старый 06.11.2015, 13:24
Аватар для DynkanMaclaud
Профессор
Отправить личное сообщение для DynkanMaclaud Посмотреть профиль Найти все сообщения от DynkanMaclaud
 
Регистрация: 08.08.2014
Сообщений: 261

есть в js события которые слишком часто вызываются это mousemove или scroll ну и чтобы обработчик события слишком часто не вызывался я хотел написать функцию заглушку через setTimeout
типо проводишь ты мышкой по body в течение 3 с и обработчик события вызвался бы 10 раз так как setTimeout ({}300ms)
Ответить с цитированием
  #5 (permalink)  
Старый 06.11.2015, 13:37
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

(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();
          }
     };
})();

Последний раз редактировалось ruslan_mart, 06.11.2015 в 13:56.
Ответить с цитированием
  #6 (permalink)  
Старый 06.11.2015, 13:43
Аватар для DynkanMaclaud
Профессор
Отправить личное сообщение для DynkanMaclaud Посмотреть профиль Найти все сообщения от DynkanMaclaud
 
Регистрация: 08.08.2014
Сообщений: 261

спасибо
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Повторный вызов функции TorchTT Общие вопросы Javascript 4 20.03.2014 21:20
внутри функции конструкция If срабатывает и при выполнении и при невыполнении. wertmax Ваши сайты и скрипты 3 02.02.2014 14:50
jQuery выполнение функции при условии. gameviktor Angular.js 1 28.01.2014 18:13
Вызов функции при загрузке страницы disallow jQuery 6 24.07.2012 15:19
переход по ссылке через N секунд jerryfish Events/DOM/Window 4 23.02.2010 17:05