delay как элемент массива

272
22 февраля 2018, 16:07

Друзья, пытаюсь создать анимацию - эффект движения сквозь коридор. Элементов пусть пока 3. Написала функции появления и увеличения (appearance() и increase()). Но задержка одинакова для всей системы из 3 элементов, а надо, чтобы для каждого следующего было "отсрочка". На ум приходит сделать delay как элемент массива, для каждого элемента свой. Однако setTimeout("...", sfArr[i].t); - не валидно. Как можно это обойти... Заранее большое спасибо.

    for(let i = 0; i < SF_COUNT; i++) {
  sfArr.push({    
    x: 10*i,
    y: 10*i,
    t: 2*i  
  });
}
function changeSnow() {
  context.clearRect(0, 0, canvas.width, canvas.height);
  for (let i = 0; i < SF_COUNT; i++) { 
  snowflake(sfArr[i].x, sfArr[i].y, sfArr[i].t);    
  }
} 
function snowflake(pos_x, pos_y){
context.beginPath();
context.rect(halfX - (pos_x-nom)/2 +100, halfY - (pos_y-nom)/2+50, halfX + pos_x-nom, halfY + pos_y-nom+10);
context.strokeStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + a +')';
context.stroke(); 
}
  function appearance() {
   a += 0.3;    
   setTimeout("appearance()", 100);
   changeSnow();    
   }
   function increase() { 
   nom -= 5; 
   setTimeout("increase()", 1000);
   changeSnow();    
   }
 window.onload = function() { 
    changeSnow();
   appearance()
   increase();
    } 

https://jsfiddle.net/Nata_Hamster/yhjqo811/3/

READ ALSO
Запрет изменения переменной

Запрет изменения переменной

Есть класс который должен быть инициализирован один разКак мне сделать так что бы при повторном создании "экземпляра класса" он не создался?

185
Задать цвет фона для кнопки через javascript

Задать цвет фона для кнопки через javascript

Помогите задать цвет фона для кнопки через javascript

228
WebStorm поддержка NodeJs and NPM.

WebStorm поддержка NodeJs and NPM.

Нашел на просторах следующий код и попытался его реализовать в WebStorm

217