时钟

作者: 檃_ | 来源:发表于2018-12-09 23:54 被阅读0次
image
在这里插入图片描述

今天看到个在线视频用canvas写时钟,感觉挺有意思,就听了一会,然后就想我能不能用css和js写一个呢?
说干就干~~~~
因为是临时起意做的,只想着要效果,没有注重代码的细节操作,看看就好了

//第一步写个大概样子
<div class="clock">
        <div class="secX"></div>
        <div class="secX-mask1"></div>
        <div class="secX-mask2"></div>
        <div class="secX-mask3"></div>
        <div class="box"></div>
        <div class="mask"></div>
        <div class="hour"></div>
        <div class="min"></div>
        <div class="sec"></div>
        <div class="img"></div>
    </div>
    //下面是样式
    <style>
        div{
            position: absolute;
            border-radius: 50%;
        }
        .clock{
            position: relative;
            margin: 100px 200px;
        }
        .box{
            left: 100px;
            top: 100px;
            background: #787878;
            width: 500px;
            height: 500px;
        }
        .mask{
            left: 150px;
            top: 150px;
            background: #F4F4F4;
            color: black;
            width: 400px;
            height: 400px;
            text-align: center;
            font-size: 40px;
            line-height: 200px;
        }
        .hour{
            height: 100px;
            width: 8px;
            background: #787878;
            left: 340px;
            top: 247px;
            transform-origin: bottom;

        }
        .min{
            height: 120px;
            width: 6px;
            background: #787878;
            left: 340px;
            top: 229px;
            z-index: 2;
            transform-origin: bottom;
        }
        .sec{
            height: 160px;
            width: 4px;
            background: #787878;
            left: 340px;
            top: 189px;
            z-index: 1;
            transform-origin: bottom;
        }
        .img{
            width: 100px;
            height: 100px;
            background: url("./1.png");
            left: 298px;
            top: 440px;
        }
        .secX{
            width: 550px;
            height: 550px;
            left: 75px;
            top: 75px;
            background: black;
        }
        .secX-mask1{
             width: 500px;
             height: 500px;
             border-width: 25px;
             border-style: solid;
             left: 75px;
             top: 75px;
         }
        .secX-mask2{
            width: 500px;
            height: 500px;
            border-width: 25px;
            border-style: solid;
            border-color:  black transparent transparent transparent;
            left: 75px;
            top: 75px;
            transform: rotate(-45deg);
        }
        .secX-mask3{
            width: 500px;
            height: 500px;
            border-width: 25px;
            border-style: solid;
            border-color: transparent transparent transparent transparent;
            left: 75px;
            top: 75px;
        }
    </style>
    //下面是一个有了思路,但是手跟不上脑子系列的js
    <script>
    let mask = document.querySelector(".mask");
    let hour = document.querySelector(".hour");
    let min = document.querySelector(".min");
    let secX_mask1 = document.querySelector(".secX-mask1");
    let secX_mask2 = document.querySelector(".secX-mask2");
    let secX_mask3 = document.querySelector(".secX-mask3");
    let sec = document.querySelector(".sec");
    timer = window.setInterval(()=>{
        mask.innerHTML = new Date().toLocaleTimeString().slice(2);
        let timeH = mask.innerHTML.split(":")[0];
        let timeM = mask.innerHTML.split(":")[1];
        let timeS = mask.innerHTML.split(":")[2];
        console.log(timeH, timeM, timeS);
        hour.style.transform = `rotate(${timeH*30}deg)`;
        min.style.transform = `rotate(${timeM*6}deg)`;
        sec.style.transform = `rotate(${timeS*6}deg)`;
        if(timeS>=0&&timeS<=30){
            secX_mask1.style.transform = `rotate(${timeS*6-45}deg)`;
            secX_mask3.style.transform = `rotate(135deg)`;
            if(timeS>=0&&timeS<=15){
                secX_mask1.style.borderColor = "white transparent transparent transparent ";
            }else{
                secX_mask1.style.borderColor = "white transparent transparent white";
            }
            secX_mask2.style.borderColor = "black transparent transparent transparent";
            secX_mask3.style.borderColor = "transparent transparent transparent transparent";
        }
        if(timeS>30&&timeS<60){
            secX_mask1.style.transform = `rotate(135deg)`;
            secX_mask3.style.transform = `rotate(${timeS*6-45}deg)`;
            secX_mask1.style.borderColor = "white transparent transparent white";
            secX_mask3.style.borderColor = "white transparent transparent white";

        }
    },1000);
</script>

相关文章

  • Linux时钟命令用法及演示

    linux时钟 linux时钟分为系统时钟和硬件时钟。系统时钟是指当前linux kernel中的时钟,而硬件时钟...

  • 苹果Mac桌面时钟推荐:OneClock提供多种样式和自定义选项

    OneClock 是一款 Mac 翻页时钟与极简时钟的屏幕时钟应用。目前包括翻页时钟、数字时钟、表盘时钟,更多表盘...

  • 时钟

    一 做个沉沉的时钟 扯开世界的灵魂 抽出来 涂一涂 抹一抹 贴近墙缝。 二 从此 我献出最后一个吻 作蝉蜕的裙裾 ...

  • 时钟

    世上再也没有比时钟更加冷漠的东西了:在您出生的那一刻,在您尽情地摘取青春幻梦的花朵的时刻,它都是同样分秒不差地滴答...

  • 时钟

    长的钟声,短的秒针 都被逐渐跨过 日子不免让人厌倦 不停的减少生命 增加沉默 也许最终会倒在这里 带着一生的困惑

  • 时钟

    你一张圆圆的脸 长着三只脚,你总是无情 我恨你 恨你带走了我天真的童年 恨你把我一身抓得遍体鳞伤 恨你让我眨眼之间...

  • 时钟

    时钟欢快走 不谙世事无烦无恼 树上掏鸟河下逮魚 ...

  • 时钟

    哪里有什么岁月安好, 不过是日进一步, 坚持到底。

  • 时钟

    你一直陪着我长大,照顾我,疼我,爱我;可是,我却再也没有机会陪你变老了。 夜晚的风啊,吹着回家的人,像是蒲公英的花...

  • 时钟

    栓在时钟上的驴子 孕育了磨盘 和流淌的你的生命 作为贺礼 我的怀表断了一根弦 用一刻钟的时间来想念 2008年12...

网友评论

      本文标题:时钟

      本文链接:https://www.haomeiwen.com/subject/acylhqtx.html