Кажется, я не могу понять, как гладко анимировать назад к создателю анимации героя. Под этим я подразумеваю, что у меня есть бумажная карточка с кучей html (img, text, ect), которую я могу «превратить» в другой элемент; но я хотел бы иметь возможность "антигероя" вернуться на (гораздо меньшую) бумажную карту гладко. Мои попытки дают только очень искаженные переходы назад. Эффект, который я пытаюсь имитировать, взят из IO Google 2015 года в разделе "Избранные разделы". Google отображает сетку эскизов, при нажатии на которые они превращаются в видео на YouTube. Нажав антигероя со стрелкой назад, вернуться к сетке рекомендуемых разделов... плавно. есть идеи?
Извините за блоки кода, у меня недостаточно репутации, чтобы что-то отображать.
Моя анимацияКонфигурация
animationConfig: {
value: function() {
return {
'entry': [{
name: 'cascaded-animation',
animation: 'scale-up-animation'
},
{
name: 'hero-animation',
id: 'hero',
toPage: this
}],
'exit': [{
name: 'cascaded-animation',
animation: 'scale-down-animation'
},
{
name: 'hero-animation',
id: 'hero',
fromPage: this
}]
}
}
}
И когда событие касания запускается при нажатии на элемент, я затемняю все оставшиеся элементы и выделяю элемент, на который нажали.
_onItemTap: function(event) {
var nodes = this.$.scrollUp.children;
var nodesToScale = [];
for(var node, index = 0; node = nodes[index]; index++) {
if (node !== event.detail.item) {
nodesToScale.push(node);
}
}
this.animationConfig['entry'][0].nodes = nodesToScale;
this.animationConfig['exit'][0].nodes = nodesToScale;
this.sharedElements = {'hero': event.detail.item};
this.fire('feed-item-tap', {item: event.detail.item, data: event.detail.data});
}
Это прекрасно отображается. Внутренний HTML элемент Element2 постепенно появляется при входе, чтобы выглядеть более изящно.
animationConfig: {
value: function() {
return {
'entry': [{
name: 'cascaded-animation',
animation: 'fade-in-animation',
nodes: [this.$.bio, this.$.pic],
timing: {delay: 500, duration: 2000}
},
{
name: 'hero-animation',
id: 'hero',
toPage: this
}],
'exit': [{
name: 'hero-animation',
id: 'hero',
fromPage: this
}]
}
}
}
sharedElements: {
value: function() {
return {
'hero': this.$.more_details
}
}
}
Опять же, анимация происходит в обоих направлениях, но герой от element2 обратно к element1 не имитирует поведение на сайте Google IO.