Skip to content

Commit

Permalink
perf: improve countTo (#499)
Browse files Browse the repository at this point in the history
  • Loading branch information
xiaoxian521 authored Apr 19, 2021
1 parent 502cc27 commit 94b2222
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 6 deletions.
7 changes: 5 additions & 2 deletions src/components/CountTo/src/index.vue
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<template>
<span>
<span :style="{ color: color }">
{{ displayValue }}
</span>
</template>
Expand All @@ -22,6 +22,7 @@
timestamp: number | null;
rAF: any;
remaining: number | null;
color: any;
}>({
localStartVal: props.startVal,
displayValue: formatNumber(props.startVal),
Expand All @@ -32,6 +33,7 @@
timestamp: null,
remaining: null,
rAF: null,
color: null,
});
onMounted(() => {
Expand All @@ -52,10 +54,11 @@
});
function start() {
const { startVal, duration } = props;
const { startVal, duration, color } = props;
state.localStartVal = startVal;
state.startTime = null;
state.localDuration = duration;
state.color = color;
state.paused = false;
state.rAF = requestAnimationFrame(count);
}
Expand Down
4 changes: 4 additions & 0 deletions src/components/CountTo/src/props.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ export const countToProps = {
return value >= 0;
},
},
color: {
type: String as PropType<string>,
require: false,
},
decimal: propTypes.string.def('.'),
separator: propTypes.string.def(','),
prefix: propTypes.string.def(''),
Expand Down
27 changes: 23 additions & 4 deletions src/views/demo/comp/count-to/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,35 @@
<PageWrapper title="数字动画示例">
<Card>
<CardGrid class="count-to-demo-card">
<CountTo prefix="$" :startVal="1" :endVal="200000" :duration="8000" />
<CountTo prefix="$" :color="'#409EFF'" :startVal="1" :endVal="200000" :duration="8000" />
</CardGrid>
<CardGrid class="count-to-demo-card">
<CountTo suffix="$" :startVal="1" :endVal="300000" :decimals="2" :duration="6000" />
<CountTo
suffix="$"
:color="'red'"
:startVal="1"
:endVal="300000"
:decimals="2"
:duration="6000"
/>
</CardGrid>
<CardGrid class="count-to-demo-card">
<CountTo suffix="$" :startVal="1" :endVal="400000" :duration="7000" />
<CountTo
suffix="$"
:color="'rgb(0,238,0)'"
:startVal="1"
:endVal="400000"
:duration="7000"
/>
</CardGrid>
<CardGrid class="count-to-demo-card">
<CountTo separator="-" :startVal="10000" :endVal="500000" :duration="8000" />
<CountTo
separator="-"
:color="'rgba(138,43,226,.6)'"
:startVal="10000"
:endVal="500000"
:duration="8000"
/>
</CardGrid>
</Card>
</PageWrapper>
Expand Down

0 comments on commit 94b2222

Please sign in to comment.