日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CSS 計(jì)數(shù)器的數(shù)字遞增動(dòng)效技術(shù)解析

454398 ? 來(lái)源:oschina ? 作者:李中凱 ? 2020-10-18 10:09 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

CSS 計(jì)數(shù)器是由 CSS 維護(hù)的變量,這些變量可根據(jù) CSS 規(guī)則增加從而跟蹤使用次數(shù)。我們可以利用這個(gè)特性,根據(jù)文檔位置來(lái)調(diào)整內(nèi)容表現(xiàn),比如顯示列表編號(hào)。

最近在公司官網(wǎng)就用到了這個(gè)特性:

image.png

因?yàn)檫@里的序號(hào)只是個(gè)裝飾,并不強(qiáng)調(diào)先后順序。比起使用真實(shí) DOM 元素顯示序號(hào),CSS 計(jì)數(shù)器更加簡(jiǎn)潔靈活,萬(wàn)一內(nèi)容順序需要調(diào)整,序號(hào)也不受影響。

有時(shí)候我們會(huì)看到某些 Dashboard 界面有數(shù)字快速滾動(dòng)的效果,比如招行 App 的賬戶余額。這種效果怎么實(shí)現(xiàn)呢?本文會(huì)介紹幾種方法。

JavaScript 方案

最簡(jiǎn)單的莫過(guò)于用setInterval定時(shí)器了,定期修改 DOM 內(nèi)容就行。不過(guò)為了實(shí)現(xiàn)更平順的動(dòng)畫(huà)效果,更推薦使用requestAnimationFrame:

functionanimateValue(obj,start,end,duration){
letstartTimestamp=null;
conststep=(timestamp)=>{
if(!startTimestamp)startTimestamp=timestamp;
constprogress=Math.min((timestamp-startTimestamp)/duration,1);
obj.innerHTML=Math.floor(progress*(end-start)+start);
if(progress

js.gif

CSS @keyframes 結(jié)合 margin

這個(gè)思路比較有意思,原理是把數(shù)字排成一行,通過(guò)動(dòng)畫(huà)移動(dòng)元素位置來(lái)顯示不同位置的數(shù)字:



0
1
2
3
4
5
6
7
8
9
10
.counter{
width:100px;
overflow:hidden;
}
.numbers{
width:auto;
display:flex;
animation:countNumber4sinfinitealternate;
animation-timing-function:steps(10);
}
.numbersdiv{
text-align:center;
flex:00100px;
}

@keyframescountNumber{
0%{
margin-left:0px;
}
100%{
margin-left:-1000px;
}
}

keyframe.gif

CSS 計(jì)數(shù)器入門(mén)版

CSS 計(jì)數(shù)器使用到以下幾個(gè)屬性:

counter-reset - 創(chuàng)建或者重置計(jì)數(shù)器

counter-increment - 遞增變量

content - 插入生成的內(nèi)容

counter() 或 counters() 函數(shù) - 將計(jì)數(shù)器的值添加到元素

要使用 CSS 計(jì)數(shù)器,得先用 counter-reset 創(chuàng)建。結(jié)合 CSS 動(dòng)畫(huà)@keyframes,在動(dòng)畫(huà)的不同階段設(shè)置不同的遞增值,就能實(shí)現(xiàn)這個(gè)效果:

div::after{
content:counter(count);
animation:counter3slinearinfinitealternate;
counter-reset:count0;
}

@keyframescounter{
0%{
counter-increment:count0;
}
10%{
counter-increment:count1;
}
20%{
counter-increment:count2;
}
30%{
counter-increment:count3;
}
40%{
counter-increment:count4;
}
50%{
counter-increment:count5;
}
60%{
counter-increment:count6;
}
70%{
counter-increment:count7;
}
80%{
counter-increment:count8;
}
90%{
counter-increment:count9;
}
100%{
counter-increment:count10;
}
}

CSS 計(jì)數(shù)器高配版

更進(jìn)一步,如果敢用最新特性,其實(shí)有更秀的操作,那就是給 CSS 變量設(shè)置動(dòng)畫(huà)。這個(gè)技巧的核心就是設(shè)置 CSS 自定義屬性為整數(shù)類型,這樣就能像其他擁有整數(shù)類型值的 CSS 屬性一樣,可用于transition中了。

@property--num{
syntax:'';
initial-value:0;
inherits:false;
}

div{
transition:--num1s;
counter-reset:numvar(--num);
}
div:hover{
--num:10000;
}
div::after{
content:counter(num);
}

不過(guò)需要注意的是,目前只有 Chrome (或者 Chromium 內(nèi)核的瀏覽器比如 Edge 和 Opera)支持@property語(yǔ)法,因此兼容性是個(gè)問(wèn)題。如果你的頁(yè)面只針對(duì) Chrome(比如 Electron 應(yīng)用),那就可以放心使用。否則還是用前面的保守方案吧。

小數(shù)也能玩動(dòng)畫(huà)

前面說(shuō)的變量都要求是整數(shù),那能不能讓小數(shù)也支持這種動(dòng)畫(huà)呢?答案是可以的。

可以把小數(shù)轉(zhuǎn)成整數(shù)。步驟原理是:

注冊(cè)一個(gè)整型的 CSS 變量(即--number),指定初始值initial-value。

用calc將值取整:--integer: calc(var(--number))

@property--integer{
syntax:"";
initial-value:0;
inherits:false;
}
--number:1234.5678;
--integer:calc(var(--number));/*1235*/

如果只需要提取整數(shù)部分,可以這樣:--integer: max(var(--number) - 0.5, 0),連calc()都不需要了。類似方法可以提取小數(shù)部分。

/*@property--integer*/
--number:1234.5678;
--integer:max(var(--number)-0.5,0);/*1234*/

完整代碼:

@property--percent{
syntax:"";
initial-value:0;
inherits:false;
}
@property--temp{
syntax:"";
initial-value:0;
inherits:false;
}
@property--v1{
syntax:"";
initial-value:0;
inherits:false;
}
@property--v2{
syntax:"";
initial-value:0;
inherits:false;
}

div{
font:80040pxmonospace;
padding:2rem;
transition:--percent1s;
--temp:calc(var(--percent)*100);
--v1:max(var(--temp)-0.5,0);
--v2:max((var(--temp)-var(--v1))*100-0.5,0);
counter-reset:v1var(--v1)v2var(--v2);
}
div::before{
content:counter(v1)"."counter(v2,decimal-leading-zero)"%";
}
constgenNumber=()=>{
document.querySelector("div").style.setProperty("--percent",Math.random());
};

setInterval(genNumber,2000);
setTimeout(genNumber);


編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    高精度頻率計(jì)數(shù)器 數(shù)字式頻率計(jì) 計(jì)數(shù)器生產(chǎn)廠家

    計(jì)數(shù)器
    jf_47371611
    發(fā)布于 :2026年04月02日 15:54:39

    計(jì)數(shù)器原理、應(yīng)用及區(qū)別解析#顆粒計(jì)數(shù)器 @普洛帝測(cè)控

    計(jì)數(shù)器
    普洛帝測(cè)控
    發(fā)布于 :2026年03月27日 16:48:58

    顆粒計(jì)數(shù)器原理應(yīng)用及區(qū)別深度解析

    在顆粒計(jì)數(shù)器領(lǐng)域,普洛帝(PULUODY) 是極具代表性的品牌,尤其在油液監(jiān)測(cè)和潔凈室檢測(cè)兩大核心板塊擁有深厚的技術(shù)積累和市場(chǎng)占有率。作為陜西普洛帝測(cè)控技術(shù)有限公司的核心產(chǎn)品,其設(shè)備以“雙激光 窄光檢測(cè)
    的頭像 發(fā)表于 03-25 15:11 ?250次閱讀
    顆粒<b class='flag-5'>計(jì)數(shù)器</b>原理應(yīng)用及區(qū)別深度<b class='flag-5'>解析</b>

    MAXIM DS1672 I2C 32位二進(jìn)制計(jì)數(shù)器RTC:特性與設(shè)計(jì)詳解

    。32位計(jì)數(shù)器每秒遞增一次,可通過(guò)軟件算法來(lái)推算出時(shí)、分、秒、周、月和年等時(shí)間信息。同時(shí),它配備了精密的溫度
    的頭像 發(fā)表于 03-24 15:25 ?194次閱讀

    深入解析DS1371:一款功能強(qiáng)大的I2C 32位二進(jìn)制計(jì)數(shù)器看門(mén)狗時(shí)鐘

    深入解析DS1371:一款功能強(qiáng)大的I2C 32位二進(jìn)制計(jì)數(shù)器看門(mén)狗時(shí)鐘 在電子設(shè)計(jì)領(lǐng)域,時(shí)鐘芯片是許多系統(tǒng)中不可或缺的組件。今天,我們將深入探討DALLAS SEMICONDUCTOR(現(xiàn)屬
    的頭像 發(fā)表于 03-24 10:10 ?294次閱讀

    深入解析FAIRCHILD DM74ALS161B、DM74ALS162B、DM74ALS163B同步四位計(jì)數(shù)器

    深入解析FAIRCHILD DM74ALS161B、DM74ALS162B、DM74ALS163B同步四位計(jì)數(shù)器 一、引言 在電子設(shè)計(jì)領(lǐng)域,計(jì)數(shù)器是一種常見(jiàn)且重要的數(shù)字電路元件,廣泛應(yīng)
    的頭像 發(fā)表于 03-12 15:40 ?288次閱讀

    雷擊計(jì)數(shù)器詳解:原理、種類、優(yōu)勢(shì)與安裝部署

    雷擊計(jì)數(shù)器是防雷系統(tǒng)中關(guān)鍵監(jiān)測(cè)設(shè)備,主要安裝于建筑物、輸電線路、通信塔或工業(yè)設(shè)施的引下線與接地系統(tǒng)之間,用于記錄雷電流沖擊次數(shù)。它通過(guò)感應(yīng)雷擊時(shí)導(dǎo)線中流過(guò)的瞬態(tài)大電流(通常波形為10/350μs
    的頭像 發(fā)表于 03-11 09:49 ?214次閱讀
    雷擊<b class='flag-5'>計(jì)數(shù)器</b>詳解:原理、種類、優(yōu)勢(shì)與安裝部署

    MAXIM ICM7225:4 又 1/2 位計(jì)數(shù)器/解碼/驅(qū)動(dòng)技術(shù)剖析

    MAXIM ICM7224/7225:4 又 1/2 位計(jì)數(shù)器/解碼/驅(qū)動(dòng)技術(shù)剖析 作為電子工程師,在設(shè)計(jì)各類計(jì)數(shù)、頻率測(cè)量及顯示電路
    的頭像 發(fā)表于 02-03 10:35 ?350次閱讀

    如何挑對(duì)一款數(shù)字式頻率計(jì)數(shù)器

    ?關(guān)鍵詞:數(shù)字式頻率計(jì)數(shù)器,數(shù)字式頻率計(jì),時(shí)間間隔測(cè)量?jī)x,頻率計(jì),國(guó)產(chǎn)頻率計(jì) 頻率通用計(jì)數(shù)器作為電子測(cè)量領(lǐng)域的“精準(zhǔn)標(biāo)尺”,廣泛應(yīng)用于研發(fā)調(diào)試、產(chǎn)線檢測(cè)、計(jì)量校準(zhǔn)等場(chǎng)景。選對(duì)設(shè)備不僅能
    的頭像 發(fā)表于 01-07 18:47 ?255次閱讀

    數(shù)字頻率計(jì)數(shù)器在計(jì)量檢測(cè)中的重要性 頻率計(jì)數(shù)器 高精度通用計(jì)數(shù)器

    SYN5635型數(shù)字頻率計(jì)數(shù)器是計(jì)量檢測(cè)領(lǐng)域的核心基礎(chǔ)儀器,其核心價(jià)值在于提供高精度頻率與時(shí)間基準(zhǔn)、保障量值統(tǒng)一、支撐全鏈路質(zhì)量控制與合規(guī)溯源,是電子、通信、航天等領(lǐng)域測(cè)量可靠性的關(guān)鍵保障。 一
    的頭像 發(fā)表于 01-05 17:53 ?1524次閱讀
    <b class='flag-5'>數(shù)字頻率計(jì)數(shù)器</b>在計(jì)量檢測(cè)中的重要性 頻率<b class='flag-5'>計(jì)數(shù)器</b> 高精度通用<b class='flag-5'>計(jì)數(shù)器</b>

    數(shù)字顯示頻率計(jì)數(shù)器功能介紹

    計(jì)數(shù)器
    西安同步電子科技有限公司
    發(fā)布于 :2025年11月06日 15:58:15

    國(guó)產(chǎn)頻率計(jì)數(shù)器vs進(jìn)口頻率計(jì)數(shù)器

    計(jì)數(shù)器
    西安同步電子科技有限公司
    發(fā)布于 :2025年11月04日 17:55:01

    頻率計(jì)數(shù)器/定時(shí) 時(shí)間間隔計(jì)數(shù)器的應(yīng)用領(lǐng)域和范圍的深度解析 頻率計(jì)數(shù)器模塊

    穩(wěn)定性的核心優(yōu)勢(shì),成為解決各時(shí)間測(cè)量需求的優(yōu)選方案。 一、集成化高精度時(shí)間測(cè)量單元 SYN5620A是一款基于先進(jìn)計(jì)時(shí)技術(shù)數(shù)字信號(hào)處理算法開(kāi)發(fā)的時(shí)間間隔計(jì)數(shù)器模塊,專為需要精準(zhǔn)測(cè)量?jī)蓚€(gè)信號(hào)之間時(shí)間間隔、脈沖寬度、信號(hào)周期等參數(shù)
    的頭像 發(fā)表于 10-30 11:22 ?726次閱讀
    頻率<b class='flag-5'>計(jì)數(shù)器</b>/定時(shí)<b class='flag-5'>器</b> 時(shí)間間隔<b class='flag-5'>計(jì)數(shù)器</b>的應(yīng)用領(lǐng)域和范圍的深度<b class='flag-5'>解析</b> 頻率<b class='flag-5'>計(jì)數(shù)器</b>模塊

    雷電(雷擊)計(jì)數(shù)器的原理、作用及行業(yè)應(yīng)用解決方案

    安全事故。雷電(雷擊)計(jì)數(shù)器作為防雷系統(tǒng)中的重要組成部分,扮演著“記錄雷擊事件、輔助安全運(yùn)維”的關(guān)鍵角色,已經(jīng)成為智能防雷系統(tǒng)中不可或缺的一環(huán)。 二、雷電(雷擊)計(jì)數(shù)器的原理 1. 工作原理 雷電計(jì)數(shù)器主要依靠電磁
    的頭像 發(fā)表于 06-12 15:14 ?1294次閱讀
    雷電(雷擊)<b class='flag-5'>計(jì)數(shù)器</b>的原理、作用及行業(yè)應(yīng)用解決方案
    宁化县| 临夏市| 南城县| 通辽市| 慈溪市| 沙坪坝区| 长顺县| 竹山县| 佳木斯市| 洱源县| 黑龙江省| 江孜县| 遵义市| 乐清市| 眉山市| 定远县| 武宣县| 攀枝花市| 观塘区| 丰台区| 鸡西市| 炎陵县| 城固县| 阿坝| 寿阳县| 稻城县| 康定县| 通江县| 太康县| 邵阳县| 周口市| 巴彦淖尔市| 五台县| 泽普县| 治多县| 琼海市| 肃北| 黄浦区| 平顶山市| 吉木乃县| 无为县|