html数字动画效果,原生JavaScript代码实现数字更新的动画效果

前言

在很多数据统计类型网站的首页,经常会看到数据在动态的更新,而且会以动画的效果呈现。

今天这篇文章我们就来看看这个效果如何实现吧。

文中的代码已经放到github上了,感兴趣的同学可以自取。https://github.com/zhouxiongking/article-pages/blob/master/articles/dynamicNumberUpdate/dynamicNumberUpdate.html

10b8df96b493fe936523533619581be1.png

JavaScript

实现效果

首先我们来看看这个功能的实现效果,如下图所示。

501ceb104bffcd35fea9e6e7e62d6981.gif

实现效果

实现思路

看到上面的效果后,我们一起来如何实现?最开始给定一个基数,我们设置的是123456789。

给基数做基本的处理,每隔三位设置一个逗号。

随机生成从0到10之间的一个数,加到基数上,然后通过定时器,每隔一秒处理一次。

动画效果通过transform属性设置,transform的值改变translateY,从0%到-100%,这样就可以得到向上滚动的效果。

实现代码-JavaScript

页面的是初始HTML代码很简单,就只有一个空的ul元素。

首先是代码每隔三位加上逗号的方法。

b969d93bc35c8c03cbfd2a985ef3538b.png

方法1

其次是随机生成一个区间内数值的方法。

8260cdcd93b6186aea37e618982a81eb.png

区间内随机生成数值

然后是增加step的方法。

6f5755c16639a6f6661d03f20943c7d5.png

增加step

然后是更新页面显示数字的方法。

该方法会接收两个参数,一个表示旧的数字,一个表示新的数字。然后比较新旧数字的每一位,如果相同则不需要变化,如果不同则需要添加一个active类,这个active类就是动画效果。

15c56a7f000bdb4feeba2fd99f7165ee.png

更新方法

最后是设置定时器,每秒触发一次update方法。

c58b9d9ef28c280810042e7f159e2d2c.png

设置定时器

实现代码-CSS

给ul设置一个类number,然后给li设置基本属性,因为要呈水平排列,需要将display设置成inline-block。

af4b2517225c0a10ef99b57b1f88d244.png

基本属性

每个数字在初始状态下都是在translateY(0)的位置,表示旧数字,当数字有变化时,会增加动画效果使translateY从0%变为-100%,表示新数字。

3aa726b4263feb5500ed0813f9646747.png

新旧数字属性

最后是实际的动画属性。

7bb19c025c8154cc7ad7a5cdd783a427.png

动画属性

至此,所有的代码都讲解完毕,在页面运行后就可以达到文字一开始的效果。

结束语

这个效果也不只是这一种实现方法,大家还能想到别的方法吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值