vue3数字滚动动画

效果
在这里插入图片描述

1.新建组件countTo.vue

<template>
    <span>
        {
   {
    state.displayValue }}
    </span>
</template>

<script setup>
import {
    onMounted, onUnmounted, reactive, watch, computed } from "vue";
import {
   
    requestAnimationFrame,
    cancelAnimationFrame,
} from "./animationFrame.js";

const props = defineProps({
   
    //开始数字
    start: {
   
        type: Number,
        required: false,
        default: 0,
    },
    //结束数字
    end: {
   
        type: Number,
        required: false,
        default: 888,
    },
    //持续时间
    duration: {
   
        type: Number,
        required: false,
        default: 5000,
    },
    //自动开始
    autoPlay: {
   
        type: Boolean,
        required: false,
        default: true,
    },
    //小数点
    decimal: {
   
        type: String,
        required: false,
        default: ".",
    },
    //千分位间隔符
    separator: {
   
        type: String,
        required: false,
        default: ",",
    },

    //前缀
    prefix: {
   
        type: String,
        required: false,
        default: "",
    },
    //后缀
    suffix: {
   
        type: String,
        required: false,
        default: "",
    },
    //是否使用速度曲线变化
    useEasing: {
   
        type: Boolean,
        required: false,
        default: true,
    },
    //变化使用的函数
    easingFn: {
   
        type: Function,
        default(t, b, c, d) {
   
            return (c * (-Math.pow(2, (-10 * t) / d) + 1) * 1024) / 1023 + b;
        },
    },
    //保留几位小数
    default: {
   
        type: Number,
        required: false,
        default: 0,
    },

});

const isNumber = (val) => {
   
    return !isNaN(parseFloat(val));
};

// 格式化数据,返回想要展示的数据格式
const formatNumber = (val) => {
   
    if (props.default) {
   
        val = val.toFixed(props.default);
        val += '';
        const x 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值