前端設計-JavaScript簡單數字時鐘開發實例

2020-12-10 編程技術棧
簡單數字時鐘開發實例

藉助於JavaScript window對象所提供的計時觸發函數setInterval可以實現前端動畫效果的設計與製作。本例主要以setInterval方法為基礎介紹簡單數字時鐘的開發實例。

01所需素材

本數字時鐘設計實現格式為00:00:00類型結構的數字時鐘,因此需要準備時鐘顯示相關數字及間隔符號的素材。最終實現效果如下所示:

最終設計效果

設計實現效果如上圖,因此需要準備0-9數字與":"字符,素材設計較為簡單直接採用PhotoShop進行設計最終導出保存為png格式圖片,素材圖片展示如下:

素材圖片

02設計思路

動態數字時鐘整體設計按照顯示格式要求,使用div展示每一位數字或者間隔符。在計時周期內調用處理函數獲取系統當前的時間,並根據當前時間計算出每一個div中應當展示的內容,最終實現時鐘的動態效果。主要設計階段如下:

1、整體HTML頁面布局設置

這個階段主要完成時鐘構成的8個DIV的布局設計,為下一步顯示時鐘提供基礎。本例DIV整體布局設計樣式效果如下:

時鐘布局層

時鐘基本布局層描述如上圖,為展示我們將其背景設置了不同顏色,後期在8個DIV塊中我們用於顯示時鐘相關數字及字符。

2、ID選擇器DIV背景設置

本例中數字時鐘數字與字符通過設置為DIV層的背景用於實現展示。本例使用ID選擇器用於實現0-9數字與間隔符的展示。由於我們數字時鐘相關素材都在統一圖片中,因此我們在設置展示數字與字符的過程中需要對每一個樣式中的背景截取位置通過background-position屬性進行精確控制。完成9個數字與一個分隔符樣式定義之後,可以將8個時鐘顯示DIV設置對應的ID標籤,實現內容展示,如我們將以上時鐘布局DIV標籤全部設置為展示數字0的ID標籤,效果如下:

ID標籤控制顯示內容

ID標籤控制DIV顯示內容如上圖所示,這樣我們就可以分別設置8個DIV層的ID標籤值實現內容的改變,如我們使用8對應的ID設置,則全部顯示數字8,效果如下:

ID標籤值對應數字8顯示效果

在實際實現中由於8個DIV結構是固定的,包含了兩個分割符號,這部分可以直接設置為分割符號,如下所示:

帶有分割符號的8位顯示效果

3、時間獲取與處理

該數字時鐘時間通過JavaScript提供的Date對象的實例化,獲取本地的時間。然後從時間數據中分別讀取出小時、分鐘、秒。所使用函數主要包括以下函數:

getHours();//用於獲取時間對象中的小時數,取值範圍0-23;

getMinutes();//用於獲取時間對象中的分鐘數,取值範圍0-59;

getSeconds();//用於獲取時間對象中的秒數,取值範圍0-59;

在獲取系統時間對應的小時、分鐘、秒之後需要確定各部分其中的每一位,由於我們時鐘格式是固定的,每一部分均為兩位,因此需要對10以內的數字進行判斷,如小於10則需要單獨補充最高位的0,如果大於等於10,則需要取出其中的十位與個位。個位取值較為簡單用獲取的值除以10取餘數即為個位,十位數字將獲取值除以10之後向下取值則可獲取10位數字。如數字35,十位計算可得3,個位餘數為5。

4、設置DIV層對應的ID標籤

在分別獲取小時、分鐘、秒對應的每一位之後,可以進一步將其設置顯示在對應DIV層中,即設置層的背景。要解決這個問題需要能夠精確獲取每一個DIV層。藉助Document對象我們可以獲取所有的層,本例我們將8個展示時鐘層,外部嵌套一個層。使用getElementById方法獲取該元素,通過該元素的childNodes屬性以數組形式獲取內部所有的DIV層。這樣可以通過數組對應下標分別表示每一個時鐘DIV。注意問題獲取的全部子節點除顯示時鐘的元素節點之外還有文本節點,需要確定哪些是對應的DIV元素節點。使用console.log輸出該數組就可以確定,數組輸出如下:

子節點列表

在該列表中我們可知對應案例編寫代碼,1,3為小時對應的2個DIV;7,9為分鐘對應的2個DIV;13,15為秒數對應的DIV。數組下標確定後就可以獲取對應的Div元素使用setAttribute()方法,實現ID屬性的設置。

5、計時器設計

為保證能夠動態獲取本地時間,並將其處理顯示的對應DIV層中,需要使用window對象提供的setInterval(func,time)方法,定義觸發周期及處理函數。考慮到間隔符號閃爍,我們設置觸發之後為500毫秒。在觸發函數中實現系統時間獲取及與時鐘DIV關聯動態改變各DIV的ID屬性。

03實現核心代碼及效果展示

按照以上設計思路,我們可以完成該案例開發,案例圖片處理使用PhotoShop CC2019,代碼編輯使用SublimeText。實現過程主要包括頁面布局設計實現與JavaScript腳本編寫的實現。其中頁面布局設計使用DIV嵌套實現,代碼如下:

頁面DIV布局

頁面DIV布局代碼如上圖所示,其中我們可以看到在初始狀態下除間隔符dd標籤之外,其他的數組部分都為d0,即我們設置的數字0展示。我們為調用背景素材實現背景展示,分別定義了d0~d9用於展示數字,dd標籤用於顯示間隔符,ds標籤用於隱藏間隔符。該部分樣式代碼如下:

時鐘數字與間隔符樣式設置

JavaScript腳本部分主要用於獲取系統時間,動態實現前端8個展示時鐘的DIV層ID標籤的設置。在窗體的onload時間中我們獲取所有的時鐘DIV元素,並啟動計時器。實現代碼如下:

頁面加載事件

頁面加載事件如上圖所示,其中回調函數setVal用於實現接收本地事件進行DIV層ID標籤設置。該函數實現代碼如下:

回調函數

處理函數代碼如上圖所示,自定義函數主要用於實現設置小時、分鐘與秒對應的DIV層ID屬性值,實現數字與間隔符切換。其中小時處理函數setH()代碼描述如下:

小時處理函數代碼

其他代碼處理與此類似,只是在處理完數字之後設置的nodes元素不同,這裡的nodes對象存儲了外層ID為test的DIV所有子元素。由於篇幅限制,其他函數不再一一說明。如需完整代碼請關注後私信。本例最終實現效果展示如下圖:

動態展示效果

本百家號長期關注編程資訊分享;編程課程、素材、代碼分享及編程培訓。如果您對以上方面有興趣或代碼錯誤、建議與意見,可在評論區回復。更多程序設計相關教程及實例分享,期待大家關注與閱讀!相關文章連結如下:

前端設計-JavaScript中父窗口與子窗口間的通信

前端設計-JavaScript實現Node節點的遍歷

快速學會如何使用CSS關係組合選擇器

一文快速讀懂CSS選擇器之屬性選擇器

相關焦點

  • 精美JS、CSS動畫時鐘設計、實現與實例分析
    動態時鐘設計實例之前文章介紹過JavaScript數字時鐘的設計與實現,主要用於藉助數組實現對數字時鐘數字進行存儲與標識。在獲取客戶端系統時間之後,選擇對應時鐘數字進行顯示即可。本文主要介紹基於CSS動畫的時鐘設計與實現。01實現思路與原理本文設計使用CSS旋轉元素屬性,對時鐘對應指針進行角度旋轉。主要設計內容包括錶盤及指針的設計。其中錶盤素材如下圖所示:
  • 如何使用JavaScript實現前端導入和導出excel文件
    使用JavaScript實現前端導入excel文件並自動生成可編輯的Table組件在開始實現之前, 我們先來看看實現效果.1.2 實現一鍵導入excel文件並生成table表格導入excel文件的功能我們可以用javascript原生的方式實現解析, 比如可以用fileReader這些原生api,但考慮到開發效率和後期的維護, 筆者這裡採用antd的Upload組件和XLSX來實現上傳文件並解析的功能.
  • 抖音上妖嬈人體時鐘軟體是什麼 怎麼弄計時方法教程
    那麼這款人體時鐘軟體叫什麼呢,不知道的夥伴們可以和小編一起來看看哦。  抖音上妖嬈的人體時鐘是什麼軟體介紹  是一款前端插件——人體時鐘(honehoneclock)。  抖音人體時鐘怎麼弄方法  要會一些簡單的javascript網頁前端操作哦!小編附上連結有興趣的朋友可以去試試。
  • 前端開發有哪些比較推薦學習的項目?
    前端開發有哪些比較推薦學習的項目?要找到這些項目可以通過如下方式:1、通常情況下,我們可以在github上面去搜索awesome javascript,很多優秀的JavaScript項目都被分門別類歸納好了。
  • 前端書籍集合(更新到332本)
    >提取碼:b53djQuery權威指南連結:https://pan.baidu.com/s/1DXGXoFtat6Gea36hor8SDQ提取碼:1n0njQuery實戰連結:https://pan.baidu.com/s/18GNGxPIcm6MEOKs0d6eypg提取碼:5jl2jQuery網頁開發實例精解
  • Web前端開發必不可少的9個開源框架
    大多數人想到Web開發時,通常會想到HTML或JavaScript,往往忽略了CSS,根據Wikipedia的說法,CSS既是網頁中最重要也是最常被遺忘的部分之一,儘管它是全球資訊網的三大基礎技術之一。今天就和大家分享9個流行的、強大的前端開源框架,幫助你輕鬆構建漂亮的網站前端。
  • 可能是最全面的2020年前端,後端,全棧學習實用指南
    如果你的目標是成為一名前端開發人員,則可以選擇前端開發的工具和技術。後端和全棧開發也是如此。2、Web開發的基本工具和軟體計算機和作業系統:如果沒有計算機和作業系統,則無法編寫代碼。要學習Web開發,你不需要任何高端計算機(如果你擁有的話,那麼更好……)。
  • 數字跑表原理
    數字跑表的顯示可以通過編寫數碼管顯示程序來實現,本實例只給出數字跑表的實現過程。讀者還可以通過增加小時的計時功能,實現完整的跑表功能。2.實例目標本實例主要實現了計數及進位的設計,通過幾個always模塊的設計實現一個特定用途的模塊――數字跑表。通過本實例,讀者應達到下面的一些實例目標。 初步掌握Verilog語言的設計方法。 完成一個數字跑表的設計。
  • 什麼是JavaScript對象?如何創建並引用?這就告訴你!
    自定義對象:我們自己定義和開發的對象。因此上面的代碼也可以寫成下面這樣:var obj = { 'key': value };但是,如果屬性不符合標識符的條件(比如第一個字符為數字,或者含有空格或運算符),則必須加上引號。
  • 從後端開發轉職前端開發,我學到了什麼?
    開發人員需要關注用戶界面,關心用戶如何與app互動,然後量化評估用戶體驗。有時你需要自己設計用戶體驗,然後改進應用程式流程。我喜歡前端開發的一點是可以直接解決用戶需求、關注他們的體驗。前端的方法跟後端不同,因為前端以用戶為中心,一切都圍繞著如何讓用戶更舒適地使用你開發的app,而不是處理數據結構。
  • 告別電子小白,8個優選DS1302數字時鐘方案大合輯
    數字時鐘是一個在主屏幕顯示數字時間和日期的 android 桌面插件。是一款樸實簡約的時鐘 widget,能展示時間,觸摸激活鬧鐘和日曆,並且字體顏色都可以進行設置,界面看起來十分的簡潔大方,有iPhone 的氣勢!有大量的自定義功能,可以為時間和日期設置數百萬中RGB顏色,可以選擇不同的背景,可以顯示/隱藏上午/下午, 選擇Widget 單擊操作,支持多國語言以及蜂窩平板。
  • 如何在javascript中創建一個對象?
    javascript是一門基於對象而不是面向對象的語言,由於它的這個缺陷,在javascript中實現面向對象時十分彆扭,就比如創建對象,由於在ES6之前沒有class關鍵字,想要創建對象必須依賴以下幾種間接方式。
  • 如何做好一個Web前端開發工程師
    無論是後端開發、設計行業,還是零基礎行業,只要你對Web前端感興趣,就可以加入前端開發行業,這是一個報酬優厚的行業,在網際網路企業中不可或缺。很多人對 web前端都有濃厚的興趣,但卻不知道如何開始學習,今天就為大家推薦7步法幫助你成為 web前端開發工程師。
  • 2020年最熱度最高的5個JavaScript框架
    2019年的優秀框架什麼是框架,為什麼我們需要它?框架的初衷是讓設計可重複使用,並為腳本程式語言提供出色的支持。簡而言之,框架是由一組開發人員編寫的代碼塊,以使整個開發過程變得簡單且易於實現。從業務角度看,它使開發人員能夠滿足相應客戶的需求,並使用框架來解決客戶項目開發階段所面臨的挑戰。
  • Web前端開發中的黑客技術以及安全技術(共七種)
    基本思路如下:伺服器隨機產生token(比如把cookie hash化生成),存在session中,放在cookie中或者以ajax的形式交給前端。前端發請求的時候,解析cookie中的token,放到請求url裡或者請求頭中。
  • JavaScript-window對象常用屬性及方法有哪些?
    (3)location 對象,瀏覽器當前URL信息;(4)navigator 對象,瀏覽器本身信息;(5)screen 對象,客戶端屏幕信息;(6)history 對象,瀏覽器訪問歷史信息;在瀏覽器中,window對象有雙重角色,它既是通過javascript
  • 前端框架bootstrap4.4入門教程,使用方法實例響應式布局實戰
    bootstrap是我最喜歡的前端框架,沒有之一,當前的最新版本是bootstrap4.4.1,和之前的3.X版本相比較有較大的變化,不過都是屬於各種標籤的分離,方法還是一樣的,在網上各種教程雖多,但是對於入門還不是不夠,很多入門教程講得雲裡霧裡,看不懂到底在說些什麼。我覺得使用具體的實例來結合相關的標籤使用才能真正的加深理解。
  • 前端開發大盤點:2015最流行前端框架TOP20
    2015年已經過去了,作為一個親歷前端開發多年的開發者,目睹和見證了前端開發從最初的Javascript 語言類庫到HTML5標準定稿後帶來的Web Components 跨終端組件的快速發展。
  • 初識javascript,JS的歷史_騰訊新聞
    javascript的應用範圍 1.PC端web開發(網站) 2.移動端開發(webApp、混合App)服務端開發(NodeJs) 3.遊戲開發(unity3D-TypeScript,網頁遊戲)在線演示:忍者水果
  • 「設計作品」最佳倒數計時器設計分析(附原型實例)
    視覺效果和動畫效果已經成為產品設計中不可或缺的一部分,開發人員使用動畫效果可以創建引人入勝的內容,營銷人員可以使用這些效果來獲得更好的產品覆蓋率和良好的轉化率。倒數計時器就是這樣一種元素,當用戶登陸頁面時,它會給用戶產生一種緊迫感。