最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript實(shí)現(xiàn)數(shù)字時(shí)鐘特效

 更新時(shí)間:2021年09月22日 08:36:10   作者:墨者羽晨  
這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)數(shù)字時(shí)鐘,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了javascript實(shí)現(xiàn)數(shù)字時(shí)鐘特效的具體代碼,供大家參考,具體內(nèi)容如下

先看效果,動(dòng)態(tài)數(shù)字時(shí)鐘

用到了jQuery,但是只是用來(lái)獲取元素,只有一點(diǎn)點(diǎn)

面向?qū)ο箝_(kāi)發(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)容寫(xiě)到HTML內(nèi)代碼太過(guò)冗余,使用js寫(xiě)入 -->
        <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));
}
/* 以下都是不同類(lèi)名對(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)來(lái)的DOM元素轉(zhuǎn)數(shù)組
    this.column = Array.from(dom);
    // 把use轉(zhuǎn)到全局,這個(gè)是判斷要顯示的時(shí)制是112小時(shí)還是24小時(shí)
    this.use = use;
    // 這個(gè)數(shù)組是后面要設(shè)置的類(lèi)名
    this.classList = ['visible', 'close', 'far', 'distance', 'distance', 'distance', 'distance', 'distance'];
    this.creatDom();
    this.start();//開(kāi)始
}
// 開(kāi)始函數(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è)置類(lèi)名
                $(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元素都寫(xiě)到HTML文件里,太過(guò)冗余,所以使用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的注釋我寫(xiě)的比較全,應(yīng)該可以看懂

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • range 標(biāo)準(zhǔn)化之獲取

    range 標(biāo)準(zhǔn)化之獲取

    range 是用戶(hù)選擇區(qū)域的唯一表示方法,存在 w3c 的標(biāo)準(zhǔn)化 range ,以及 ie 特有的 textrange 與 controlrange ,相對(duì)于 ie ,w3c 的概念更易于理解,首先簡(jiǎn)要介紹一下 w3c range.
    2011-08-08
  • 使用tree?shaking?移除無(wú)用代碼

    使用tree?shaking?移除無(wú)用代碼

    這篇文章主要為大家介紹了使用tree?shaking?移除無(wú)用代碼示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • typescript 類(lèi)型any不能分配給類(lèi)型never

    typescript 類(lèi)型any不能分配給類(lèi)型never

    本文主要介紹了typescript 類(lèi)型any不能分配給類(lèi)型never,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • html5+canvas實(shí)現(xiàn)支持觸屏的簽名插件教程

    html5+canvas實(shí)現(xiàn)支持觸屏的簽名插件教程

    jq-signature.js是一個(gè)幫助你創(chuàng)建簽名的jQuery插件,允許你的用戶(hù)使用鼠標(biāo),手指或者鉛筆生成簽名。下面這篇文章主要給大家介紹了利用html5+canvas實(shí)現(xiàn)支持觸屏的簽名插件的相關(guān)資料,需要的朋友可以參考下。
    2017-05-05
  • 詳解javascript立即執(zhí)行函數(shù)表達(dá)式IIFE

    詳解javascript立即執(zhí)行函數(shù)表達(dá)式IIFE

    本文主要介紹了javascript立即執(zhí)行函數(shù)表達(dá)式IIFE的相關(guān)知識(shí)。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • JavaScript設(shè)計(jì)模式之適配器模式介紹

    JavaScript設(shè)計(jì)模式之適配器模式介紹

    這篇文章主要介紹了JavaScript設(shè)計(jì)模式之適配器模式介紹,適配器模式,一般是為要使用的接口,不符本應(yīng)用或本系統(tǒng)使用,而需引入的中間適配層類(lèi)或?qū)ο蟮那闆r,需要的朋友可以參考下
    2014-12-12
  • Openlayers實(shí)現(xiàn)面積測(cè)量的方法

    Openlayers實(shí)現(xiàn)面積測(cè)量的方法

    在Openlayers中,長(zhǎng)度和面積的測(cè)量均依賴(lài)ol/sphere模塊,長(zhǎng)度通過(guò)getLength方法計(jì)算,面積則通過(guò)getArea方法,面積測(cè)量不是計(jì)算平面面積,而是基于球面,適用于多邊形和多多邊形集合,感興趣的朋友一起看看吧
    2024-11-11
  • 微信小程序swiper左右擴(kuò)展各顯示一半代碼實(shí)例

    微信小程序swiper左右擴(kuò)展各顯示一半代碼實(shí)例

    這篇文章主要介紹了微信小程序swiper左右擴(kuò)展各顯示一半代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • js實(shí)現(xiàn)網(wǎng)頁(yè)定位導(dǎo)航功能

    js實(shí)現(xiàn)網(wǎng)頁(yè)定位導(dǎo)航功能

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)網(wǎng)頁(yè)定位導(dǎo)航功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • 整理的比較全的event對(duì)像在ie與firefox瀏覽器中的區(qū)別

    整理的比較全的event對(duì)像在ie與firefox瀏覽器中的區(qū)別

    event對(duì)像在IE與FF中的區(qū)別,本文整理了很多,個(gè)人感覺(jué)還是比較全面的,需要的朋友可以收藏下
    2013-11-11

最新評(píng)論

常德市| 来宾市| 贵定县| 木兰县| 抚远县| 余姚市| 民丰县| 清远市| 泰兴市| 杂多县| 泗水县| 灵武市| 兰考县| 沙田区| 通州市| 灵川县| 千阳县| 东港市| 龙南县| 三穗县| 马鞍山市| 若羌县| 泗阳县| 新绛县| 柳江县| 玉林市| 金山区| 阜南县| 青浦区| 焉耆| 濮阳县| 台山市| 辉南县| 瓦房店市| 澄江县| 林周县| 宜宾市| 溧水县| 岳阳县| 波密县| 焦作市|