Изглежда не мога да разбера как да гладко анимирам назад към създателя на анимация на герой. С това имам предвид, че имам хартиена карта с куп html (img, текст, и т.н.) върху нея, която мога да „преобразувам“ в друг елемент; но бих искал да мога да се върна на към (много по-малката) хартиена карта плавно. Моите опити произвеждат само много изкривени преходи назад. Ефектът, който се опитвам да имитирам, е от IO на Google за 2015 г. под „Представени секции“. Google показва мрежа от миниатюри, които при щракване преместват герои във видеоклипове в YouTube. Натискане на антигероите със стрелка назад към мрежата с представени секции...плавно. някакви мисли?
Съжалявам за кодовите блокове, нямам достатъчно репутация, за да покажа нещо.
Моят animationConfig е
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.