数字翻牌器小动画
This commit is contained in:
parent
660be19d5e
commit
63e68c3934
|
@ -15,11 +15,11 @@
|
||||||
"dayjs": "^1.11.13",
|
"dayjs": "^1.11.13",
|
||||||
"echarts": "^5.6.0",
|
"echarts": "^5.6.0",
|
||||||
"event-source-polyfill": "^1.0.31",
|
"event-source-polyfill": "^1.0.31",
|
||||||
|
"gsap": "^3.13.0",
|
||||||
"js-base64": "^3.7.7",
|
"js-base64": "^3.7.7",
|
||||||
"jsencrypt": "^3.3.2",
|
"jsencrypt": "^3.3.2",
|
||||||
"lodash-es": "^4.17.21",
|
"lodash-es": "^4.17.21",
|
||||||
"naive-ui": "^2.41.0",
|
"naive-ui": "^2.41.0",
|
||||||
"odometer": "^0.4.8",
|
|
||||||
"pinia": "^3.0.1",
|
"pinia": "^3.0.1",
|
||||||
"pinia-plugin-persistedstate": "^4.2.0",
|
"pinia-plugin-persistedstate": "^4.2.0",
|
||||||
"sass": "^1.85.1",
|
"sass": "^1.85.1",
|
||||||
|
@ -3163,6 +3163,12 @@
|
||||||
"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
|
"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"node_modules/gsap": {
|
||||||
|
"version": "3.13.0",
|
||||||
|
"resolved": "https://registry.npmmirror.com/gsap/-/gsap-3.13.0.tgz",
|
||||||
|
"integrity": "sha512-QL7MJ2WMjm1PHWsoFrAQH/J8wUeqZvMtHO58qdekHpCfhvhSL4gSiz6vJf5EeMP0LOn3ZCprL2ki/gjED8ghVw==",
|
||||||
|
"license": "Standard 'no charge' license: https://gsap.com/standard-license."
|
||||||
|
},
|
||||||
"node_modules/has-symbols": {
|
"node_modules/has-symbols": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz",
|
"resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz",
|
||||||
|
@ -3794,12 +3800,6 @@
|
||||||
"node": "^14.16.0 || >=16.10.0"
|
"node": "^14.16.0 || >=16.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/odometer": {
|
|
||||||
"version": "0.4.8",
|
|
||||||
"resolved": "https://registry.npmmirror.com/odometer/-/odometer-0.4.8.tgz",
|
|
||||||
"integrity": "sha512-bfKuAhWE/qMCiX9bwX90c5bTpt7MDVeq1e6YsOHQrYokNhv9jhS5JbR9kg6i+FeWmDgalf3VUtwNx1aVaZ8cgg==",
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/ohash": {
|
"node_modules/ohash": {
|
||||||
"version": "2.0.11",
|
"version": "2.0.11",
|
||||||
"resolved": "https://registry.npmmirror.com/ohash/-/ohash-2.0.11.tgz",
|
"resolved": "https://registry.npmmirror.com/ohash/-/ohash-2.0.11.tgz",
|
||||||
|
|
|
@ -19,11 +19,11 @@
|
||||||
"dayjs": "^1.11.13",
|
"dayjs": "^1.11.13",
|
||||||
"echarts": "^5.6.0",
|
"echarts": "^5.6.0",
|
||||||
"event-source-polyfill": "^1.0.31",
|
"event-source-polyfill": "^1.0.31",
|
||||||
|
"gsap": "^3.13.0",
|
||||||
"js-base64": "^3.7.7",
|
"js-base64": "^3.7.7",
|
||||||
"jsencrypt": "^3.3.2",
|
"jsencrypt": "^3.3.2",
|
||||||
"lodash-es": "^4.17.21",
|
"lodash-es": "^4.17.21",
|
||||||
"naive-ui": "^2.41.0",
|
"naive-ui": "^2.41.0",
|
||||||
"odometer": "^0.4.8",
|
|
||||||
"pinia": "^3.0.1",
|
"pinia": "^3.0.1",
|
||||||
"pinia-plugin-persistedstate": "^4.2.0",
|
"pinia-plugin-persistedstate": "^4.2.0",
|
||||||
"sass": "^1.85.1",
|
"sass": "^1.85.1",
|
||||||
|
|
|
@ -335,18 +335,16 @@
|
||||||
<div class="home5ItemIndex">
|
<div class="home5ItemIndex">
|
||||||
<div class="home5ItemIndexEachItem">
|
<div class="home5ItemIndexEachItem">
|
||||||
<div>未处理</div>
|
<div>未处理</div>
|
||||||
<div
|
<i style="font-size: 20px; color: red">
|
||||||
ref="odometerEl"
|
{{ Math.floor(currentNumber) }}
|
||||||
style="font-size: 20px; color: red"
|
</i>
|
||||||
></div>
|
|
||||||
<!-- <i style="font-size: 20px; color: red">458</i> -->
|
<!-- <i style="font-size: 20px; color: red">458</i> -->
|
||||||
</div>
|
</div>
|
||||||
<div class="home5ItemIndexEachItem">
|
<div class="home5ItemIndexEachItem">
|
||||||
<div>已处理</div>
|
<div>已处理</div>
|
||||||
<div
|
<i style="font-size: 20px">
|
||||||
style="font-size: 20px"
|
{{ Math.floor(currentNumber2) }}
|
||||||
ref="odometerEl2"
|
</i>
|
||||||
></div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -355,37 +353,24 @@
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref } from "vue";
|
import { ref } from "vue";
|
||||||
import "odometer/themes/odometer-theme-default.css";
|
|
||||||
// @ts-ignore
|
|
||||||
import Odometer from "odometer";
|
|
||||||
const odometerEl = ref(null);
|
|
||||||
const odometerEl2 = ref(null);
|
|
||||||
|
|
||||||
const targetNumber = 458;
|
const targetNumber = 458;
|
||||||
|
const currentNumber = ref(0);
|
||||||
const targetNumber2 = 12;
|
const targetNumber2 = 12;
|
||||||
|
const currentNumber2 = ref(0);
|
||||||
|
import { gsap } from "gsap";
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
const od = new Odometer({
|
gsap.to(currentNumber, {
|
||||||
el: odometerEl.value,
|
value: targetNumber,
|
||||||
value: 0,
|
duration: 1.5,
|
||||||
format: "(,ddd)", // 格式化为千位分隔
|
ease: "power2.out",
|
||||||
duration: 2000,
|
onUpdate: () => {},
|
||||||
});
|
});
|
||||||
|
gsap.to(currentNumber2, {
|
||||||
setTimeout(() => {
|
value: targetNumber2,
|
||||||
od.update(targetNumber);
|
duration: 1.5,
|
||||||
}, 100);
|
ease: "power2.out",
|
||||||
|
onUpdate: () => {},
|
||||||
const od2 = new Odometer({
|
|
||||||
el: odometerEl2.value,
|
|
||||||
value: 0,
|
|
||||||
format: "(,ddd)", // 格式化为千位分隔
|
|
||||||
duration: 2000,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
setTimeout(() => {
|
|
||||||
od2.update(targetNumber2);
|
|
||||||
}, 100);
|
|
||||||
});
|
});
|
||||||
const isFold = ref(true);
|
const isFold = ref(true);
|
||||||
const toggleFold = () => {
|
const toggleFold = () => {
|
||||||
|
|
Loading…
Reference in New Issue