Jquery使用countTo.js插件实现数字滚动效果

一. 前言

最近在做公司官网项目时,要求要展示一些数据,加上一些炫酷的效果。于是在网上找了一些开源的库,由于项目用的Jquery,所以找了countTo插件。话不多说,先看效果:

数字滚动效果

二. 使用方法

1. 在代码引入count.js插件

由于countTo插件依赖于Jquery,所以在此之前还要引入Jquery,笔者这里以引用cdn的方式,你也可以将js文件下载到你的项目中引入。

<script src="https://cdn.staticfile.net/jquery/3.7.1/jquery.min.js"></script>
<script src="https://cdn.staticfile.net/jquery-countto/1.2.0/jquery.countTo.min.js"></script>

2. 使用

这里笔者简单写一个demo,效果是这样:给你要操作的数字加一个id,或者你使用class类名也行。
在这里插入图片描述

<style>
  #person-data{
       display: flex;
       font-size: 26px;
   }
   .item{
       width: 300px;
   }
</style>
</head>
<body>
<div id="person-data">
    <div class="item">
        财富 <i id="count-1">8889</i><sup>+</sup>
    </div>
    <div class="item">
        运气 <i id="count-2">3456</i><sup>+</sup>
    </div>
</div>
</body>
<script src="https://cdn.staticfile.net/jquery/3.7.1/jquery.min.js"></script>
<script src="https://cdn.staticfile.net/jquery-countto/1.2.0/jquery.countTo.min.js"></script>
<script>
    $(document).ready(function () {
        //你可以在这里定义你要操作的数字配置,从一个数滚动到另一个数
        let $counters = [
            { id: '#count-1', from: 7777, to: 8889 },
            { id: '#count-2', from: 3000, to: 3456 },
        ];

        $counters.forEach(function(counter) {
            $(counter.id).countTo({
                from: counter.from,
                to: counter.to,
                speed: 1000,    //多长时间内完成
                refreshInterval: 50  //这里的50指的是刷新间隔
            });
        });
    });
</script>

怎样?是不是很简单呢

3. 最佳实践

当然,更通用的做法是将一些变量通过属性嵌入到html中,这对于一些数据从后端生成的页面更为适用,像jsp以及thymeleaf模板引擎这种,这种方法使得数据更加灵活,因为你可以直接在HTML中修改这些值,而无需更改JavaScript代码。例如:

<div id="person-data">
    <div class="item" data-from="7777" data-to="8889">
        财富 <i id="count-1">8889</i><sup>+</sup>
    </div>
    <div class="item" data-from="3000" data-to="3456">
        运气 <i id="count-2">3456</i><sup>+</sup>
    </div>
</div>
<script src="https://cdn.staticfile.net/jquery/3.7.1/jquery.min.js"></script>
<script src="https://cdn.staticfile.net/jquery-countto/1.2.0/jquery.countTo.min.js"></script>
<script>
    $(document).ready(function () {
        let $items = $('.item');

        $items.each(function() {
            let $this = $(this);
            let from = $this.data('from');
            let to = $this.data('to');
            let $counter = $this.find('i');

            $counter.countTo({
                from: from,
                to: to,   
                speed: 1000,
                refreshInterval: 50
            });
        });
    });
</script>

4. 可配置项

这里给大家一些插件的配置项,读者在使用时可参考实现。

参数名称类型作用描述示例值
fromnumber指定动画开始的数值。50
tonumber指定动画结束的数值。2500
speednumber指定动画完成所需的总时间(以毫秒为单位)。1000
refreshIntervalnumber指定动画帧之间的刷新间隔(以毫秒为单位),用于创建平滑的动画效果。50
formatterfunction一个函数,用于格式化每个动画帧的数值。通常用于控制数字的显示精度。function (value, options) { return value.toFixed(options.decimals); }(注意:options.decimals需明确指定)
onUpdatefunction每当数值更新时执行的回调函数,参数value为当前数值,this可能指向动画元素。function (value) { console.log(value); }
onCompletefunction当动画完成时执行的回调函数,参数value为最终数值,this可能指向动画元素。function (value) { console.log('Animation complete:', value); }

好啦,本次分享的内容就是这些啦,若对您有帮助的话不妨点个赞哦!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值