diff options
Diffstat (limited to 'src/lib/Layout')
| -rw-r--r-- | src/lib/Layout/NumberTicker.svelte | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/lib/Layout/NumberTicker.svelte b/src/lib/Layout/NumberTicker.svelte new file mode 100644 index 00000000..1d09c3ef --- /dev/null +++ b/src/lib/Layout/NumberTicker.svelte @@ -0,0 +1,36 @@ +<script> + import { tweened } from 'svelte/motion'; + import { cubicOut } from 'svelte/easing'; + + export let start = 0; + export let end = 100; + export let duration = 2000; + export let delay = 0; + + const count = tweened(start, { + duration: duration, + easing: cubicOut, + delay: delay + }); + + $: { + count.set(end); + } +</script> + +<span class="counter" class:visible={$count !== start}> + {Math.round($count)} +</span> + +<style lang="scss"> + .counter { + $duration: 0.2s; + + opacity: 0; + transition: opacity $duration ease-out, transform $duration ease-out; + } + + .counter.visible { + opacity: 1; + } +</style> |