Files
housesof/src/animations/crossfade.js
Félix Péault a93571842b Locations: Rework the Crossfade transition
Add a start value for the scale to make it more elegant
2020-04-07 19:24:40 +02:00

26 lines
712 B
JavaScript

import { crossfade } from 'svelte/transition'
import { quartOut } from 'svelte/easing'
// Crossfade transition
export const [send, receive] = crossfade({
duration: d => Math.sqrt(d * 200),
fallback: (node, params) => {
const {
duration = 600,
easing = quartOut,
start = 0.85
} = params
const style = getComputedStyle(node)
const transform = style.transform === 'none' ? '' : style.transform
const sd = 1 - start
return {
duration,
easing,
css: (t, u) => `
transform: ${transform} scale(${1 - (sd * u)});
opacity: ${t}
`
}
}
})