• js动态数字时钟


    js动态数字时钟

    主要用到知识点:

    • 主要是通过数组的一些方法,如:Array.from() Array.reduce() Array.find()
    • 时间的处理和渲染
    • js用到面向对象的写法

    实现的功能

    • 炫酷的数字时间效果
    • 直接看效果

    Alt

    html:

        <div class="wraper">
            <div class="column">
                <div class="item">0</div>
                <div class="item">1</div>
                <div class="item">2</div>
            </div>
            <div class="column ten"></div>
            <div class="colon">:</div>
            <div class="column six"></div>
            <div class="column ten"></div>
            <div class="colon">:</div>
            <div class="column six"></div>
            <div class="column ten"></div>
        </div>
    

    css:

        * {
            margin: 0;
            padding: 0;
        }
        html,
        body {
             100%;
            height: 100%;
            background-color: #0e141b;
        }
        .wraper {
             100%;
            height: 100%;
            text-align: center;
            overflow: hidden;
        }
        .column,
        .colon {
            display: inline-block;
            vertical-align: top;
            color: #fff;
            font-size: 86px;
            line-height: 86px;
            font-weight: 300;
            transform: translateY(50vh);
            margin-top: -43px;
            transition: all 0.3s;
        }
        .visible {
            opacity: 1;
            box-shadow: 0px 0px 20px #fff;
            border-radius: 5px;
        }
        .near1 {
         opacity: 0.7;
        }
        .near2 {
            opacity: 0.6;
        }
        .near3 {
            opacity: 0.4;
        }
        .far1 {
            opacity: 0.3;
        }
        .far2 {
            opacity: 0.2;
        }
        .far3 {
            opacity: 0.1;
        }
        .none {
            opacity: 0.05;
        }
    

    js:

        function Time(bom,use24){
            this.Bom = Array.from(bom);
            this.format = use24;
            this.classList = ['visible', 'near1', 'near2','near3', 'far1', 'far2', 'far3'];
            this.creatDom();
            this.setTime();
        }
        //生成dom元素
        Time.prototype.creatDom=function(){
            for(let i=0;i<6;i++){
                let odiv = "<div class='item'>"+i+"</div>";
                $('.six').append(odiv);
            }
            for(let i=0;i<10;i++){
                let idiv = "<div class='item'>" + i + "</div>";
                $('.ten').append(idiv);
            }
        }  
        //设置当前时间到页面
        Time.prototype.setTime = function(){
            let self =this;
            setInterval(function(){
                let presentTime = self.getTime();
                self.Bom.forEach((ele,index)=>{
                    var n = +presentTime[index];
                    var offset = n * 86;
                    $(ele).css({
                    marginTop:-43 - offset +'px'
                    })
                    Array.from(ele.children).forEach(function (ele1,index1){
                        $(ele1).attr('class', self.getClassName(n,index1));
                    })
                })
            },500)
        }
        Time.prototype.getClassName = function(n,i){
            let className = this.classList.find(function(item,index){
                return i - index === n || i + index === n;
            })
            // console.log(className)
            return className || 'none';
        }
        //获取当前时间并处理
        Time.prototype.getTime=function(){
            let Data = new Date();
            let timeArr =[];
            let timeStr = '';
            timeArr.push(this.format ? Data.getHours() : Data.getHours() % 12 || 12, Data.getMinutes(),Data.getSeconds());
            timeStr = timeArr.reduce(function(p,n){
                return p + ('0' + n).slice(-2);
            },'');
            return timeStr;
        }
        new Time($('.column'),true);
    

    参考自:腾讯课堂渡一教育

  • 相关阅读:
    Python操作MySQL之SQLAlchemy
    mysql 中的视图详解。
    mysql终端下进行数据库备份与备份导入。
    python函数的特性。再后面再讲函数装饰器。
    序列解包(for x,y in zip(keys, values):)详解。
    jinja2.exceptions.TemplateAssertionError: no filter named 'zip'(这一类的问题的解决办法)
    flask
    网络基础知识
    测试用例设计要注意的问题
    使用tailf命令查看日志
  • 原文地址:https://www.cnblogs.com/sgs123/p/10790743.html
Copyright © 2020-2023  润新知