CSS 计数器的妙用:数字递增动效
CSS 计数器是由 CSS 维护的变量,这些变量可根据 CSS 规则增加从而跟踪使用次数。我们可以利用这个特性,根据文档位置来调整内容表现,比如显示列表编号。
最近在公司官网就用到了这个特性:
image.png
image.png
因为这里的序号只是个装饰,并不强调先后顺序。比起使用真实 DOM 元素显示序号,CSS 计数器更加简洁灵活,万一内容顺序需要调整,序号也不受影响。
有时候我们会看到某些 Dashboard 界面有数字快速滚动的效果,比如招行 App 的账户余额。这种效果怎么实现呢?本文会介绍几种方法。
JavaScript 方案
最简单的莫过于用 setInterval定时器了,定期修改 DOM 内容就行。不过为了实现更平顺的动画效果,更推荐使用 requestAnimationFrame:
function animateValue(obj, start, end, duration) {
let startTimestamp = null;
const step = (timestamp) => {
if (!startTimestamp) startTimestamp = timestamp;
const progress = Math.min((timestamp - startTimestamp) / duration, 1);
obj.innerHTML = Math.floor(progress * (end - start) + start);
if (progress < 1) {
window.requestAnimationFrame(step);
}
};
@keyframes设置
动画
规则
1、@keyframes的作用是设置一个规则,在这个规则内指定
CSS
样式,并且指定
动画
的变化方式
2、规则内可以使用from{}、to{}关键字来设置样式变化,也可以使用百分比设置样式变化
@keyframes myfirst
from {background: red;}
to {background: yellow;}
@keyframes myfirst
0%{background: red;}
50% {backgrou
例如我们最终要展示的
数字
为 5878390 ,那么第一个
数字
就是从1滚动到5停止,第二个
数字
是从0滚动到5再滚动到8停止,第三个
数字
是从0滚动到8再滚动到7停止(9之后是0),也就是说从左到右每一位都比前面一位滚动的时间更长,这样就出现了从左到右
数字
依次出现的
效果
。...
使用
CSS
3
动画
绝对可以实现
数字
旋转
效果
,你还可以使用一小部分JS来设置终点并实际获得整个功能.方法说明:>创建一个div,通过将其高度和宽度设置为1em,它始终只显示一个
数字
. div的溢出设置为隐藏,以便只显示一行.>在此div中,创建一个包含1到0之间所有
数字
的范围,并相对于父级定位.>跨度的初始位置为0px或0em,但在
动画
期间,顶部位置会发生变化,因此跨度会给人以向上移...
前几天项目开发中遇到一个需求,需要在
数字
更新时,实现其的
效果
并且,在
数字
大于时,将单位进行转换,如
数字
大于10000时,单位从变为万我们以中开发为例,一一实现下这两个需求。
这是一种
数字
序号
效果
,你先运行一下看
效果
就明白了,完全使用
CSS
自己的属性方法来实现,代码中一共演示了三种序号风格,一种是阿拉伯
数字
风格,还有大写序号风格,另外还有带竖线的序号风格,向大家介绍如何用
CSS
自动为内容
增加
序号的功能,非常实用。代码如下:htmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/...
正如标题,这也是我最近项目中遇到的需求,这个例子很简单,相信大家都会有很多种方法来实现这一
效果
。在很早之前,
计数器
仅存在于ul,ol等元素中,如何想给其他元素
增加
计数,就只能通过list-style-image,或者background-image来实现。而我的布局结构恰恰没有到ul ol等元素,所以如果是想要给其他元素
增加
计数
效果
就只能另想它法,正好
css
3
增加
了counter属性,可以实现任何...