Избледняване в различни елементи и различно време с помощта на Greensock Tween

Наистина съм нов с GSAP и мисля, че е невероятно. Не мога обаче да разбера как да избледнявам в тези елементи поотделно.

1-во (това е добре) за 2-ро желание да изчезне в определен момент и 3-то в определено време.

JavaScript:

function startFinalAnimation(){
    var fa = new TimelineLite();
    fa.to(finalAvatar, 2, {scale: 0.45, delay: 0, opacity: 1, transformOrigin:"-3% 8.8%"});
    fa.to(finalContent, 4, {delay: 0, opacity: 1});
    fa.to(logo, 5, {delay: 0, opacity: 1});
}

person James    schedule 21.08.2015    source източник
comment
Можете да добавите име към всяка анимация и да зададете забавяне към нея greensock.com/docs/ #/HTML5/GSAP/TimelineLite   -  person    schedule 21.08.2015
comment
Освен това ви препоръчвам да гледате техния видео пример - greensock.com/sequence-video   -  person    schedule 21.08.2015


Отговори (1)


TimelineLite на .to() синтаксисът на метода е както следва:

timeline.to(target, duration, vars, position);

Този четвърти position параметър е нещо, което можете да използвате, за да позиционирате точно където искате да се появи вашият tween. Така че бихте могли например да направите:

function startFinalAnimation(){
    var fa = new TimelineLite();
    fa.to(finalAvatar, 2, { scale: 0.45, opacity: 1, transformOrigin:"-3% 8.8%" });
    fa.to(finalContent, 4, { opacity: 1 }, '-=1');
    fa.to(logo, 5, { opacity: 1 }, '-=2');
}

Тук -=1-=2) основно казват, че анимацията трябва да се добави при припокриване от 1 секунди в края на предишната анимация, вместо по подразбиране, което е да се добави в самия край на предишната добавена анимация.

Има много начини за предоставяне на position. По-горе използвах -=. Други опции са (взети от предоставената по-долу връзка):

  • в абсолютно време (1).
  • спрямо края на времева линия, като се допускат пропуски ("+=1") или припокривания ("-=1").
  • на етикет ("someLabel").
  • спрямо етикет ("someLabel+=1").

Прочетете повече за параметъра position тук: Съвет за времевата линия: Разбиране на параметъра за позиция.

person Tahir Ahmed    schedule 21.08.2015
comment
Изглежда не работи, просто всичко се случва по едно и също време. - person James; 21.08.2015
comment
можеш ли да приготвиш бърза цигулка, моля? - person Tahir Ahmed; 21.08.2015
comment
трябва първо да бъдат зададени първоначалните променливи, преди да можете да достигнете до целевите променливи. .fromTo() методът на TimelineLite може да ви помогне с това. - person Tahir Ahmed; 21.08.2015
comment
Друг начин за подход към същия проблем с първо задаване на стойности би бил: това. - person Tahir Ahmed; 21.08.2015
comment
може да искате да споделите цигулка с цялото си съдържание може би :) - person Tahir Ahmed; 21.08.2015
comment
Всичко е твърде голямо и сложно с целия останал код, задействах функцията два пъти, затова се случваше това. Въпреки това изглежда, че показва окончателното съдържание при зареждане на страницата, след което изчезва и се връща обратно на този таймер... ще погледна дали нещо друго го причинява, но мислех, че ще се крие, за да започнем, нали? - person James; 21.08.2015
comment
също така има ли начин за забавяне на началото на първата анимация, така че задръжте за няколко секунди, преди transformOrigin да започне? - person James; 21.08.2015
comment
можете да забавите цялата поредица от времева линия, като добавите параметъра delay към конструктора на TimelineLite обект по следния начин: ... = new TimelineLite({ delay: xxx });. - person Tahir Ahmed; 21.08.2015
comment
или можете да добавите закъснения и към отделни tweens, като това, което имате във вашия въпрос. - person Tahir Ahmed; 21.08.2015
comment
имаш ли и таймер там? Интересно ми е какъв подход имате тук. - person Tahir Ahmed; 21.08.2015
comment
Добре е, успях да го оправя :) благодаря за цялата ви помощ отново. - person James; 21.08.2015
comment
радвам се, че го направи. няма проблем. - person Tahir Ahmed; 21.08.2015