模拟一串数字更新的效果

2019-07-30  本文已影响0人  兰鑫鑫

<!DOCTYPE html>

<html>

<head>

    <title></title>

    <style type="text/css">

        body,html{

            margin: 0;

            padding: 0;

            font-size: 16px

        }

        .number li {

            width: 16px;

            height: 16px;

            line-height: 16px;

            display: inline-block;

            overflow: hidden;

        }

        .number li span {

            display: block;

            transform: translateY(0%);

        }

        .number li.active span {

            animation: move 0.3s;

            animation-fill-mode: forwards;

        }

        @keyframes move {

            from {

                transform: translateY(0);

            }

            to {

                transform: translateY(-100%);

            }

        }

    </style>

</head>

<body>

    <ul id="main" class="number"></ul>

    <script type="text/javascript">

        function makeThreeNum(num){

            var num = (num || "").toString();

            return num.match(/\d{1,3}/g).join(',');

        }

        function getRand(max, min){

            return parseInt(Math.random()*(max-min)+min);

        }

        function addStep(base){10

            return (parseInt(getRand(0, 10)) + parseInt(base));

        }

        var w_old = 123456789;

        function update(oldNum, newNum){

            w_old = newNum;

            var oldNum = makeThreeNum(oldNum),

                newNum = makeThreeNum(newNum),

                numberHTML = '';

            for (var i = 0; i < oldNum.length; i++) {

                if(oldNum[i] !== newNum[i]){

                    numberHTML += "<li class=\"group active\"><span class=\"old\">" + oldNum[i] + "</span><span class=\"new\">" + newNum[i] + "</span></li>";

                }else{

                    numberHTML += "<li class=\"group\"><span class=\"old\">" + oldNum[i] + "</span><span class=\"new\">" + newNum[i] + "</span></li>";

                }

            }

            document.getElementById('main').innerHTML = numberHTML;

        }

        window.setInterval(function(){

            update(w_old, addStep(w_old));

        }, 1000);

    </script>

</body>

</html>

上一篇 下一篇

猜你喜欢

热点阅读