添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

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属性,可以实现任何...