html 数字实现滚动的效果 到指定的数(使用countup.js插件)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了html 数字实现滚动的效果 到指定的数(使用countup.js插件)相关的知识,希望对你有一定的参考价值。

参考技术A 数字实现滚动的效果

<span id="num1">1000</span>

<script src="https://cdn.bootcss.com/countup.js/1.9.3/countUp.js"></script>

<script type="text/javascript">   

 var options =      

 useEasing: true,      

useGrouping: true,      

separator: ',',      

decimal: '.', 

  ;   

 var num1 = new CountUp('num1', 0, 1000, 0, 2.5, options);   

 if (!num1.error)     

 num1.start();  

  else      

 console.error(num1.error); 

  

</script>

//num1:目标元素的ID 

 //0:滚动开始的数字

//100:滚动结束的数字

//2.5 :完成整个效果的时间

数字滚动插件numberAnimate.js的使用及效果修改

有个实现数字滚动的需求,想着肯定有很多这种效果的插件,就不自己造轮子了,于是,找了个numberAnimate js数字滚动插件,还挺好用,很简单,刚好符合需求。

代码如下:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>数字滚动插件</title>
        <link rel="stylesheet" type="text/css" href="../dist/style/numberAnimate.css" />
    </head>
    <body>
    无分隔符,无小数点:<div class="numberRun"></div><br><br>
    </body>
    <script src="http://cdn.bootcss.com/jquery/1.8.3/jquery.min.js"></script>
    <script type="text/javascript" src="../dist/script/numberAnimate.js"></script>
    <script type="text/javascript">
    $(function(){
        //初始化
        var numRun = $(".numberRun").numberAnimate({num:‘1553093‘, speed:1000});
        //想要的是过一段时间加1的效果,可以实现
        var nums = 1553093;
        setInterval(function(){
            nums+= 1;
            numRun.resetData(nums);
        },2000);

    })
</script>
</html>

想要的效果是过一段时间加1的效果,可以实现,但是有个小小的bug,那就是,比如说,个位数字加到9时进一位然后该位上为0,问题来了,这里0的数字却滚动不出来,直接到了下一个时间间隔时滚动到了11,调试了很久发现,是numberAnimate.js中,第85行的判断条件有问题,注释掉该if判断就好了,如下图:
技术图片

上图中,第85行的$(this).css("top")一直都是0px,而第84行计算获取到的thisTop 在数字滚到到0 时值为0px,所以导致直接跳过了判断,没有执行到transform动画那里,所以少了0的效果,导致看起来的效果就是9直接跳到了11,没有10。

另外,提示一句,改变数字的字号大小,需要修改的numberAnimate.css中的height、width、字号的比例要把握好,一不小心就坏了,呵呵,亲身体会 -_-||

以上是关于html 数字实现滚动的效果 到指定的数(使用countup.js插件)的主要内容,如果未能解决你的问题,请参考以下文章

如何用jquery实现页面滚动到指定位置后触发事件的效果?

如何用jquery实现页面滚动到指定位置后触发事件的效果

如何让jquery动画效果在屏幕滚动到指定位置才执行

js如何实现数字滚动效果

如何通过JQuery将DIV的滚动条滚动到指定的位置

页面加载时自动滚动到指定位置!如何做