javascript實(shí)現(xiàn)數(shù)字時(shí)鐘特效
本文實(shí)例為大家分享了javascript實(shí)現(xiàn)數(shù)字時(shí)鐘特效的具體代碼,供大家參考,具體內(nèi)容如下
先看效果,動(dòng)態(tài)數(shù)字時(shí)鐘
用到了jQuery,但是只是用來獲取元素,只有一點(diǎn)點(diǎn)
面向?qū)ο箝_發(fā)
看代碼
HTML,自己引入jQuery和js,jQuery在前
<body> <div class="wrapper"> <div class="column"> <!-- 此div表示時(shí)的十位,只有0,1,2三個(gè) --> <div>0</div> <div>1</div> <div>2</div> </div> <!-- 以下的內(nèi)容寫到HTML內(nèi)代碼太過冗余,使用js寫入 --> <div class="column ten"></div> <div class="coln">:</div> <div class="column six"></div> <div class="column ten"></div> <div class="coln">:</div> <div class="column six"></div> <div class="column ten"></div> </div> </body>
CSS
*{ margin: 0; padding: 0; } html,body{ height: 100%; width: 100%; background-color: #0e141b; overflow: hidden; /* 設(shè)置溢出隱藏 */ } .wrapper{ text-align: center; width: 100%; } .wrapper .column, .wrapper .coln{ display: inline-block; vertical-align: top; color: rgba(224,230,235,0.89); font-size: 86px; line-height: 86px; font-weight: 300; } .column{ transition: all 300ms ease-in; } .coln{ /* 冒號(hào)的位置 */ transform: translateY(calc(50vh - 83px)); } /* 以下都是不同類名對(duì)應(yīng)的透明度 */ .visible{ opacity: 1; } .close{ opacity: 0.25; } .far{ opacity: 0.15; } .distance{ opacity: 0.05; }
JS
function Index(dom, use) { // 把傳進(jìn)來的DOM元素轉(zhuǎn)數(shù)組 this.column = Array.from(dom); // 把use轉(zhuǎn)到全局,這個(gè)是判斷要顯示的時(shí)制是112小時(shí)還是24小時(shí) this.use = use; // 這個(gè)數(shù)組是后面要設(shè)置的類名 this.classList = ['visible', 'close', 'far', 'distance', 'distance', 'distance', 'distance', 'distance']; this.creatDom(); this.start();//開始 } // 開始函數(shù) Index.prototype.start = function () { var self = this; setInterval(function () { var c = self.getClock(); // console.log(c); self.column.forEach(function (ele, index) { var n = + c[index]; var offset = n * 86;//移動(dòng)距離 console.log(offset); $(ele).css({ 'transform': 'translateY(calc(50vh - ' + offset + 'px - 73px))' // 設(shè)置移動(dòng) }); Array.from(ele.children).forEach(function (ele2, index2) { var className = self.getClass(n, index2); // 調(diào)用函數(shù)設(shè)置類名 $(ele2).attr('class', className); }) }) }, 500); }; // 為距離時(shí)間不一樣的元素設(shè)置不一樣的class名 Index.prototype.getClass = function (n, i) { var className = this.classList.find(function (ele, index) { return i - index === n || i + index === n; }) return className || ""; } // 獲得時(shí)間并且格式化時(shí)間,字符串 21:06:09 ==> 210609 Index.prototype.getClock = function () { var d = new Date(); // 這里走一個(gè)三目運(yùn)算符,如果use是真(true)則取值,如果為假則12取余轉(zhuǎn)為12小時(shí)制 return [this.use ? d.getHours() : d.getHours() % 12 || 12, d.getMinutes(), d.getSeconds()].reduce(function (p, n) { return p + ('0' + n).slice(-2); // 這里是吧個(gè)位數(shù)加0,比如1添加一個(gè)0后得到01,如果是12加0后事012,但是取數(shù)值后兩位,得到12 }, '') }; // 由于把HTML元素都寫到HTML文件里,太過冗余,所以使用for循環(huán)添加進(jìn)去 Index.prototype.creatDom = function () { for (var i = 0; i < 6; i++) { var oDiv = '<div>' + i + '</div>'; $(".six").append(oDiv); } for (var i = 0; i < 10; i++) { var iDiv = '<div>' + i + '</div>'; $(".ten").append(iDiv); } }; // 第二個(gè)參數(shù),true為24小時(shí)制,false為12小時(shí)制 new Index($('.column'), true);
js的注釋我寫的比較全,應(yīng)該可以看懂
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- JavaScript實(shí)現(xiàn)動(dòng)態(tài)數(shù)字時(shí)鐘
- javascript實(shí)現(xiàn)數(shù)字時(shí)鐘效果
- vue.js實(shí)現(xiàn)帶日期星期的數(shù)字時(shí)鐘功能示例
- JS+CSS實(shí)現(xiàn)滾動(dòng)數(shù)字時(shí)鐘效果
- js實(shí)現(xiàn)一個(gè)簡(jiǎn)單的數(shù)字時(shí)鐘效果
- 使用JS顯示倒計(jì)時(shí)數(shù)字時(shí)鐘效果
- javascript實(shí)現(xiàn)滾動(dòng)效果的數(shù)字時(shí)鐘實(shí)例
- JS實(shí)現(xiàn)的網(wǎng)頁倒計(jì)時(shí)數(shù)字時(shí)鐘效果
- javascript數(shù)字時(shí)鐘示例分享
- html5 canvas js(數(shù)字時(shí)鐘)實(shí)例代碼
相關(guān)文章
關(guān)聯(lián)的Select,可以支持客戶端動(dòng)態(tài)更新
關(guān)聯(lián)的Select,可以支持客戶端動(dòng)態(tài)更新...2006-09-09js跨域和ajax 跨域問題的實(shí)現(xiàn)思路
大家都知道js是不能跨域的,但我們有時(shí)候就要這么用,怎么辦呢?辦法總是有的.2009-09-09React中過渡動(dòng)畫的編寫方式實(shí)例詳解
在開發(fā)中我們想要給一個(gè)組件的顯示和消失添加某種過渡動(dòng)畫,可以很好的增加用戶體驗(yàn),下面這篇文章主要給大家介紹了關(guān)于React中過渡動(dòng)畫的編寫方式,需要的朋友可以參考下2022-10-10JavaScript 閉包機(jī)制詳解及實(shí)例代碼
這篇文章主要介紹了JavaScript 閉包機(jī)制詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2016-10-10js實(shí)現(xiàn)的真正的iframe高度自適應(yīng)(兼容IE,FF,Opera)
由于項(xiàng)目上的需要,要用一個(gè)iframe高度自適應(yīng)的功能,在google上搜了很久,找了一些修改了下。大家可以測(cè)試下。2010-03-03微信小程序點(diǎn)餐系統(tǒng)開發(fā)常見問題匯總
這篇文章主要介紹了微信小程序點(diǎn)餐系統(tǒng)開發(fā)常見問題匯總,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08javascript自動(dòng)給文本url地址增加鏈接的方法分享
這篇文章主要介紹了javascript自動(dòng)給文本url地址增加鏈接的方法,有需要的朋友可以參考一下2014-01-01