template-project/pagesA/count-to/count-to.vue

127 lines
3.1 KiB
Vue

<template>
<view>
<view>
<vueCountTo ref='example1' :start-val="startVal1" :end-val="endVal1" :duration="4000"></vueCountTo>
<view @click='start1'>start</view>
<view @click='changeExampleEndVal'>change end-val</view>
<view @click='incrementalUpdate'>incremental update</view>
</view>
<view>
<vueCountTo ref="example2" :start-val="2017" :end-val="0" :duration="8000"></vueCountTo>
<view @click="start2">start</view>
</view>
<view>
<vueCountTo ref="example3" :start-val="_startVal" :end-val="_endVal" :duration="_duration"
:decimals="_decimals" :separator="_separator" :prefix="_prefix" :suffix="_suffix" :autoplay="false">
</vueCountTo>
<view>
<label for="startValInput">startVal: <input type="number" v-model.number='setStartVal'
name='startValInput' /></label>
<label for="endValInput">endVal: <input type="number" v-model.number='setEndVal'
name='endVaInput' /></label>
<label for="durationInput">duration: <input type="number" v-model.number='setDuration'
name='durationInput' /></label>
<view @click='start3'>start</view>
<view @click='pauseResume'>pause/resume</view>
<label for="decimalsInput">decimals: <input type="number" v-model.number='setDecimals' name='decimalsInput' /></label>
<label for="separatorInput">separator: <input v-model='setSeparator' name='separatorInput' /></label>
<label for="prefixInput">prefix: <input v-model='setPrefix' name='prefixInput' /></label>
<label for="suffixInput">suffix: <input v-model='setSuffix' name='suffixInput' /></label>
</view>
</view>
</view>
</template>
<script>
import vueCountTo from '@/components/count-animate/count-one/vue-countTo.vue';
export default {
components: {
vueCountTo
},
data() {
return {
setStartVal: 0,
setEndVal: 2017,
setDuration: 4000,
setDecimals: 0,
setSeparator: ',',
setSuffix: ' rmb',
setPrefix: '¥ ',
startVal1: 0,
endVal1: 2017
}
},
computed: {
_startVal() {
if (this.setStartVal) {
return this.setStartVal
} else {
return 0
}
},
_endVal() {
if (this.setEndVal) {
return this.setEndVal
} else {
return 0
}
},
_duration() {
if (this.setDuration) {
return this.setDuration
} else {
return 100
}
},
_decimals() {
if (this.setDecimals) {
if (this.setDecimals < 0 || this.setDecimals > 20) {
alert('digits argument must be between 0 and 20')
return 0
}
return this.setDecimals
} else {
return 0
}
},
_separator() {
return this.setSeparator
},
_suffix() {
return this.setSuffix
},
_prefix() {
return this.setPrefix
},
},
methods: {
changeExampleEndVal() {
this.endVal1 = this.endVal1 + 1000
},
incrementalUpdate() {
this.startVal1 = this.endVal1
this.endVal1 = this.endVal1 + 1000
},
callback() {
console.log('callback')
},
start1() {
this.$refs.example1.start();
},
start2() {
this.$refs.example2.start();
},
start3() {
this.$refs.example3.start();
},
pauseResume() {
this.$refs.example3.pauseResume();
}
}
}
</script>
<style>
</style>