Я использую TimelineMax от Greensock для анимации элементов в цикле:
var elems = $('.section_elems');
var elem1 = elems[0];
var elemInit1 = new TimelineMax({
repeat: -1,
yoyo: true,
delay: 1
});
elemInit1.set(elem1, {
opacity: '0.4'
});
elemInit1.to(elem1, 1, {
opacity: '1'
});
var elem2 = elems[1];
var elemInit2 = new TimelineMax({
repeat: -1,
yoyo: true,
delay: 1.5
});
elemInit2.set(elem2, {
opacity: '1'
});
elemInit2.to(elem2, 0.5, {
opacity: '0.4'
});
Я хочу привести это в порядок больше, так как он используется много раз.Я написал цикл, чтобы попытаться выплюнуть его, но получаю ошибку «Uncaught Cannot tween a null target».
Мой цикл выглядел примерно так:
var elems = $('.section_elems');
var elemsNum = elems.length;
for (let i = 1; i <= elemsNum + 1; i++) {
var elemTimeline = new TimelineMax({
repeat: -1,
yoyo: true,
delay: 1
});
var animTiming = Math.floor(Math.random() * 3) + 1;
elemTimeline.set(elems[i - 1], {
opacity: '1'
});
elemTimeline.to(elems[i - 1], animTiming, {
opacity: '0.5'
});
elemTimeline.to(elems[i - 1], animTiming, {
opacity: '0.8'
});
}