aboutsummaryrefslogtreecommitdiff
path: root/src/lib/Layout
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/Layout')
-rw-r--r--src/lib/Layout/NumberTicker.svelte36
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>