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

原生JS實(shí)現(xiàn)數(shù)碼表特效

 更新時(shí)間:2021年10月15日 08:39:23   作者:aiguangyuan  
這篇文章主要為大家詳細(xì)介紹了原生JS實(shí)現(xiàn)數(shù)碼表特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文分享一個(gè)用原生JS實(shí)現(xiàn)的數(shù)碼時(shí)鐘特效,效果如下:

上面的數(shù)字是用的圖片生成的,共10張圖片如下:

實(shí)現(xiàn)代碼如下,歡迎大家復(fù)制粘貼。

<!DOCTYPE html>
<html>
 
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>原生JS實(shí)現(xiàn)數(shù)碼表特效</title>
    <style>
        body {
            background: blue;
            color: white;
            font-size: 30px;
        }
 
        #div1 {
            width: 220px;
            height: 36px;
            position: fixed;
            left: 50%;
            top: 50%;
            transform: translate(-50%, -50%);
            border: 1px #FFF solid;
        }
 
        #div1 img {
            width: 25px;
            height: 36px;
            position: relative;
        }
    </style>
    <script>
        window.onload = function () {
            //獲取所有的圖片
            var aImg = document.getElementsByTagName('img');
            //獲取本地進(jìn)間對(duì)象
            var oDate = new Date();
            //小時(shí)+分鐘+秒
            var prevStr = toZero(oDate.getHours()) +
                toZero(oDate.getMinutes()) +
                toZero(oDate.getSeconds());
            //聲明下一次時(shí)間的字符串變量
            var nextStr = '';
            //同一時(shí)間變化的不僅僅秒數(shù),有可能是多位數(shù),建數(shù)組存儲(chǔ)
            var arr = [];
            var timer = null;
 
            //第i個(gè)img圖片的src地址為img下當(dāng)前時(shí)間第i位數(shù)所對(duì)應(yīng)的圖片名稱
            //104604=>通過charAt(i)分別獲得1到6位的字符,即1,0,4,6,0,4
            for (var i = 0; i < aImg.length; i++) {
                aImg[i].src = 'images/' + prevStr.charAt(i) + '.png';
            };
 
            //設(shè)置定時(shí)器,1秒鐘執(zhí)行1次toChange方法
            setInterval(toChange, 1000);
 
            //獲取下一次的時(shí)間
            function toChange() {
                //獲取本地進(jìn)間對(duì)象
                var oDate = new Date();
                //小時(shí)+分鐘+秒
                nextStr = toZero(oDate.getHours()) +
                    toZero(oDate.getMinutes()) +
                    toZero(oDate.getSeconds());
                //將上一次的時(shí)間和下一次的時(shí)間做對(duì)比
                toCom(prevStr, nextStr);
                //把下1秒的時(shí)間賦給當(dāng)前,不斷變化
                prevStr = nextStr;
            };
            //上一次的時(shí)間和下一次的時(shí)間對(duì)比函數(shù)
            function toCom(str1, str2) {
                //比較之前,將之前的清空,重新賦值
                arr = [];
                //遍歷第1次時(shí)間的每1位數(shù)字
                for (var i = 0; i < str1.length; i++) {
                    //如果有1位字符與下一次時(shí)間對(duì)應(yīng)的字符不同
                    if (str1.charAt(i) != str2.charAt(i)) {
                        //將它壓入數(shù)組中
                        arr.push(i);
                    }
                }
                //執(zhí)行圖片翻轉(zhuǎn)
                startMove();
 
            };
            //圖片翻轉(zhuǎn)函數(shù)
            function startMove() {
                //圖片高度36px,設(shè)定第次減少-4px
                var iSpeed = -4;
 
                //設(shè)定定時(shí)器
                timer = setInterval(function () {
                    //循環(huán)遍歷數(shù)組中上一次時(shí)間和下一次時(shí)間發(fā)生變化的字符串
                    for (var i = 0; i < arr.length; i++) {
                        //如果數(shù)組中不同的字符所對(duì)應(yīng)名稱的圖片高度等于0
                        if (aImg[arr[i]].offsetHeight == 0) {
                            //將變化速度設(shè)為增加4px
                            iSpeed = 4;
                            //不同的字符所對(duì)應(yīng)名稱的圖片位置等于img里下一次時(shí)間第i位數(shù)所對(duì)應(yīng)的圖片名稱
                            //i代表兩次時(shí)間變化所在的數(shù)字位數(shù),arr[i]得出具體數(shù)字
                            aImg[arr[i]].src = 'images/' + nextStr.charAt(arr[i]) + '.png';
                        }
                        //數(shù)組中不同的字符所對(duì)應(yīng)名稱的圖片的高度等于它內(nèi)容高度每次減4px
                        //注意style.height和offsetHeight的高度
                        aImg[arr[i]].style.height = aImg[arr[i]].offsetHeight + iSpeed + 'px';
                        //數(shù)組中不同的字符所對(duì)應(yīng)名稱的圖片的top值等于它內(nèi)容高度1半減18px
                        //以保證每次變化圖片都可以居中顯示
                        aImg[arr[i]].style.top = aImg[arr[i]].offsetHeight / 2 - 18 + 'px';
 
                        //當(dāng)圖片的高度達(dá)到最大高度36px時(shí)
                        if (aImg[arr[i]].offsetHeight == 36) {
                            //清除定時(shí)器
                            clearInterval(timer);
                        }
                    }
 
                }, 10);
            };
 
 
            //獲取本地時(shí)間個(gè)位數(shù)不滿10,而十位數(shù)為0是沒有的,此處封裝函數(shù)補(bǔ)全
            function toZero(num) {
                if (num < 10) {
                    return '0' + num;
                } else {
                    return '' + num;
                }
            }
        };
    </script>
</head>
 
<body>
    <div id="div1">
        <img src="images/0.png" />
        <img src="images/0.png" />:
        <img src="images/0.png" />
        <img src="images/0.png" />:
        <img src="images/0.png" />
        <img src="images/0.png" />
    </div>
</body>
 
</html>

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

相關(guān)文章

最新評(píng)論

沅陵县| 合阳县| 农安县| 贵阳市| 砀山县| 景东| 五原县| 北安市| 乐业县| 旺苍县| 沿河| 静海县| 方山县| 克什克腾旗| 准格尔旗| 平阴县| 谷城县| 合肥市| 马山县| 东平县| 新巴尔虎右旗| 四川省| 广州市| 松溪县| 佛学| 西安市| 泸定县| 光山县| 汾西县| 屏山县| 龙井市| 广灵县| 灌阳县| 大余县| 巴彦淖尔市| 娄烦县| 璧山县| 五常市| 年辖:市辖区| 博兴县| 盘锦市|