Defines a named transition that morphs from one element to another.
Here is the definition of the pre-defined cross-fade
animation:
up.transition('cross-fade', function(oldElement, newElement, options) {
return Promise.all([
up.animate(oldElement, 'fade-out', options),
up.animate(newElement, 'fade-in', options)
])
})
For animations that can be expressed through CSS transitions,
we recomend that your definitions end by calling up.animate()
with an object argument,
passing along your options
and returning the result.
If you choose to not use up.animate()
and roll your own
logic instead, your code must honor the following contract:
{ duration, easing }
if given.up:motion:finish
is emitted on
either element, the transition instantly jumps to the last frame
and resolves the returned promise.Calling up.animate()
with an object argument
will take care of all these points.