亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > JS > 正文

基于JS實現數字動態變化顯示效果附源碼

2024-05-06 16:53:24
字體:
來源:轉載
供稿:網友

先給大家展示下效果,感覺不錯,可以參考實現代碼,文末附有源碼哦。

 

JS,數字,動態,源碼

 

1.目標

以液晶電子表樣式,動態變化的在指定元素內顯示數字。

目標關鍵詞:動態變化(定時器),指定元素(DOM元素ID),數字(number)
效果:多個頁面元素中,均以動態效果顯示不同的數字,可正可負。并動態改變至少一個元素內的數據。

2.基本原理

(1) 液晶電子表樣式,找一種液晶電子表字體即可,無須使用別的繪制技巧。
 (2) 動態變化則通過使用定時器任務來完成,動態顯示要確保變化足夠的時長,因此,步長需要根據變化量來進行計算,本文默認變化頻率為 50 毫秒一次,動態過程 2 秒(即 2000 毫秒),則變化次數為 40 次,因此步長為變化量除以 40 得到。

JS,數字,動態,源碼

其余則均為規則約束與控制,如支持多元素隔離,動態變化的結束條件,步長計算的方向與時長控制等。

3.步步實現

3.1下載字體定義字體名稱

最后提供的源碼會包含字體文件。在css中定義字體名稱以便樣式引用。

@font-face { font-family: LEDFont; src: url("./UnidreamLED.ttf"); }

接下來定義顯示數字的元素樣式,其中便使用到剛定義的字體名稱 LEDFont。

.dynanum{ font-family: LEDFont; font-size: 48px; color:red; padding:10px; margin:10px; display:inline-block; width:200px; text-align:right; border:1px solid #bbbbff;}

3.2接口定義

使用者能提供的就是有顯示的 DOM元素ID,和要顯示的數值,那這里向外提供的接口方法就出來了,形如:function (elementId, number)。

3.3支持多元素操作

為了支持多元素的簡易操作,這里定義DOM元素ID與對象的映射變量。

var DynamicNumber = {};DynamicNumber.NumberList = {};

3.4繪制的實現

直接代碼說話。嗯,這里說明一下重點。對于實際繪制的對象,接口中以匿名函數的方式創建,在首次涉及到某DOM元素ID時進行創建。如果已經創建,則直接調用 render 方法,調用之前,除了設置新的目標數值,還會清除步長 step,表示需要重新計算步長,當然這些都是封裝在接口內部,調用者不需要關心。

對于繪制方法 render,它所完成的是一步變化的繪制,期間進行結束條件的判斷,并在 step 為 0 時進行步長的首次計算工作,最后再使用 setTimeout 啟動下一步的定時任務。

詳細代碼及注釋如下,歡迎留言交流。

/** * 在指定的 DOM 元素中動態顯示數值 * 作者:triplestudio@sina.com * * @param elementId :  DOM 元素ID * @param number  :  數值 */DynamicNumber.show = function (elementId, number) { // 1. 已建立過對象直接調用 var dynaNum = this.NumberList[elementId]; if (dynaNum) {  dynaNum.step = 0;  dynaNum.desNumber = number;  dynaNum.render();  return; } // 2. 創建動態數字繪制對象 dynaNum = new function (_elementId) {  this.elementId = _elementId;  this.preNumber = 0; // 變化過程值  this.desNumber = 0; // 目標數值,最終顯示值  this.step = 0;  // 變化步長,支持正向反向  // 繪制過程  this.render = function () {   // (1)結束條件   if (this.preNumber == this.desNumber) {    this.step = 0;    return;   }   // (2)步長設置(計劃 2 秒完成 40*50=2000)   if (this.step == 0) {    this.step = Math.round((this.desNumber - this.preNumber) / 40);    if (this.step == 0) this.step = (this.desNumber - this.preNumber > 0) ? 1 : -1;   }   // (3)走一步   this.preNumber += this.step;   if (this.step < 0) {    if (this.preNumber < this.desNumber) this.preNumber = this.desNumber;   } else {    if (this.preNumber > this.desNumber) this.preNumber = this.desNumber;   }   // (4)顯示   document.getElementById(this.elementId).innerHTML = this.preNumber;   // (5)每秒繪制 20 次(非精確值)   var _this = this;   setTimeout(function () { _this.render(); }, 50);  }; } (elementId); // 3. 登記綁定元素ID  DynamicNumber.NumberList[elementId] = dynaNum; // 4. 調用繪制 dynaNum.step = 0; dynaNum.desNumber = number; dynaNum.render();};

4.使用方式

如接口所定義,使用者只需要關心DOM元素ID與數值即可。這里,我們再用一個定時器,每5秒鐘改變一個數值來看看值變化時的動態效果。

DynamicNumber.show("num1", 128);DynamicNumber.show("num2", 12345);DynamicNumber.show("num3", -8769);DynamicNumber.show("num4", 987102);DynamicNumber.show("num5", -30);// 每 5 秒把 num1 中的數值改變setInterval(function () {  DynamicNumber.show("num1", DynamicNumber.NumberList["num1"].desNumber + 300);}, 5000);

源碼下載:

https://github.com/triplestudio/helloworld/tree/master/dynamic_number?from=singlemessage&isappinstalled=0

總結

以上所述是小編給大家介紹的基于JS實現數字動態變化顯示效果 ,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
九九热最新视频//这里只有精品| 国产精品久久久久久av下载红粉| 美女视频黄免费的亚洲男人天堂| 2020国产精品视频| 九九视频直播综合网| 欧美成人性生活| 精品高清美女精品国产区| 欧美国产日韩xxxxx| 韩剧1988免费观看全集| 91大神福利视频在线| 日日狠狠久久偷偷四色综合免费| 欧美性猛交xxxx黑人猛交| 国产精品美女久久久久久免费| 日韩精品一二三四区| 国产精品私拍pans大尺度在线| 国产亚洲成精品久久| 亚洲午夜久久久影院| 国产欧美久久一区二区| 亚洲综合日韩中文字幕v在线| 在线观看亚洲视频| 亚洲精品乱码久久久久久金桔影视| 欧美肥臀大乳一区二区免费视频| 日韩av123| 亚洲国产第一页| 欧美激情一区二区三区成人| 久久艹在线视频| 宅男66日本亚洲欧美视频| 日本成人黄色片| 国产一区二区三区日韩欧美| 欧美视频第一页| 成人黄色大片在线免费观看| 亚洲tv在线观看| 亚洲男人天堂2024| 亚洲第一色在线| 欧美裸体xxxx极品少妇| 国产精品扒开腿做爽爽爽男男| 伊人久久五月天| 欧美精品电影免费在线观看| 91极品视频在线| …久久精品99久久香蕉国产| 欧美激情亚洲精品| 日韩欧美一区二区三区久久| 亚洲精品视频在线观看视频| 97国产精品人人爽人人做| 欧美亚洲国产成人精品| 欧美在线亚洲一区| 日本精品中文字幕| 久久久久久久久久久人体| 国产精品视频内| 精品在线观看国产| 成人免费网站在线| 亚洲第一区第二区| 欧美色欧美亚洲高清在线视频| 性金发美女69hd大尺寸| 欧美裸体视频网站| 亚洲第一网站免费视频| 欧美日韩国产123| 91亚洲精品一区| 九九精品视频在线观看| 欧美床上激情在线观看| 狠狠躁夜夜躁人人爽天天天天97| 成人精品一区二区三区| 伦伦影院午夜日韩欧美限制| 日韩久久午夜影院| 成人夜晚看av| 日本欧美一二三区| 欧美乱大交xxxxx另类电影| 欧美日韩在线视频一区二区| 成人深夜直播免费观看| 国产精品视频网站| 91精品国产综合久久香蕉的用户体验| 欧美视频专区一二在线观看| 午夜精品99久久免费| 亚洲第一网站男人都懂| 永久免费精品影视网站| 国产精品电影网站| 日韩av一区二区在线观看| 亚洲国产精彩中文乱码av| 亚洲免费视频在线观看| 九九久久精品一区| 91久久精品视频| 欧美情侣性视频| 欧美黄色成人网| 最新91在线视频| 欧美精品中文字幕一区| 黑人巨大精品欧美一区二区一视频| 国产免费一区二区三区在线观看| 亚洲国产成人精品一区二区| 精品久久中文字幕| 国产精品久久久av久久久| 色噜噜狠狠狠综合曰曰曰88av| 精品视频www| 国内精品视频在线| 欧美激情久久久久久| 欧美日韩一区二区免费在线观看| 久久久久久久久久国产| 日韩电影中文字幕一区| 国产成人精品久久亚洲高清不卡| 亚洲最新中文字幕| 久久久视频精品| 亚洲美女自拍视频| 亚洲qvod图片区电影| 国产激情999| 2021久久精品国产99国产精品| 亚洲色图狂野欧美| 国产成人精品免费久久久久| 久久久久久国产精品久久| 亚洲少妇激情视频| 亚洲欧美另类人妖| 欧美夫妻性生活视频| 91天堂在线观看| 亚洲人成绝费网站色www| 国产做受高潮69| 日韩成人激情影院| 亚洲欧美国内爽妇网| 中日韩美女免费视频网址在线观看| 色爱av美腿丝袜综合粉嫩av| 国模精品一区二区三区色天香| 茄子视频成人在线| 国语自产精品视频在线看一大j8| 精品在线观看国产| 欧美一级黑人aaaaaaa做受| 欧美性20hd另类| 亚洲欧美日本伦理| 国产精品香蕉av| 欧美激情视频在线免费观看 欧美视频免费一| 精品少妇一区二区30p| 国产精品9999| 在线观看视频亚洲| 久久国产精品免费视频| 91免费的视频在线播放| 亚洲人成电影网站色www| 国产精品夫妻激情| 欧美贵妇videos办公室| 久热99视频在线观看| 中文字幕久久久av一区| 国产三级精品网站| 亚洲欧美中文另类| 国产精品电影网| 国产深夜精品福利| 欧美激情二区三区| 68精品久久久久久欧美| 日韩大片在线观看视频| 国产精品一香蕉国产线看观看| 国产丝袜一区二区三区| 日韩欧美国产高清91| 美日韩丰满少妇在线观看| 清纯唯美亚洲激情| 欧美激情成人在线视频| 亚洲小视频在线观看| 岛国精品视频在线播放| 国产精品直播网红| 欧美视频在线免费| 亚洲精品美女在线| 亚洲福利在线观看| 78m国产成人精品视频| 91久久综合亚洲鲁鲁五月天| 国产精品久久久久久婷婷天堂| 国产精品∨欧美精品v日韩精品| 亚洲精品一区二区网址| 91亚洲精品久久久| 亚洲xxx视频| 九九热精品视频在线播放| 欧美性猛交xxxx黑人|