美文网首页
css动画小练习——时钟

css动画小练习——时钟

作者: moutory | 来源:发表于2022-03-21 20:14 被阅读0次

前言

本篇文章将使用css来做一个简单的时钟效果(由于没有使用js来做时间矫正,所以时钟虽然可以正常运行,但是具体的时间是不准确的)。

一、html部分

html部分的内容其实还是挺简单的,clock元素下有时针、分针、秒针三个子元素。且由于时针,分针,秒针三者运行时间不同,外观也不同,所以这三个元素之间为平级关系,并不会进行嵌套。
这里有个地方需要注意,这个练习的关键在于使用transfrom:rotateZ属性来控制元素的旋转,但是旋转是以元素的中心来进行的,所以我们可以有2种方案来解决这个问题。一种是每个指针内都放置一个背景颜色的div,从而隐藏指针运动的下半部分,第二种方案是每个指针外面都套一个父div,把旋转的效果交由父div来实现,这样指针就可以跟着父指针来实现旋转了。

<body>
 <div class="container">
     <div class="clock">
        <div class="hour-warp">
            <div class="hour"></div>
        </div>
        <div class="min-warp">
            <div class="min"></div>
        </div>
        <div class="sec-warp">
            <div class="sec"></div>
        </div>
     </div>
 </div>    
</body>

二、css部分

css部分基本除了动画部分之外,其他的基本就是让旋转的div放置在表盘的中心,以及多加了一个表盘的背景图片。

<style>
    .container{
        background-color: #fff;
        width: 800px;
        height: 800px;
        padding-top: 100px;
    }
    .clock{
        margin: 0 auto;
        width: 400px;
        height: 400px;
        border: solid black 4px;
        border-radius: 50%;
        position: relative;
        background-image: url(./image//bg.png);
        background-size: cover;
    }
    .clock>div{
        position: absolute;
        top: 0;
        left: 0;
        bottom: 0;
        right: 0;
        margin: auto;
    }
    .sec-warp{
        height: 90%;
        width: 90%;
        animation: clock-move 60s steps(60) infinite;
    }
    .sec{
        height: 50%;
        width: 2px;
        background-color: red;
        margin: 0 auto;
    }
    .min-warp{
        height: 80%;
        width: 80%;
        animation: clock-move 3600s linear infinite;
    }
    .min{
        height: 50%;
        width: 4px;
        background-color: black;
        margin: 0 auto;
    }
    .hour-warp{
        height: 70%;
        width: 70%;
        animation: clock-move 43200s linear infinite;
    }
    .hour{
        height: 50%;
        width: 6px;
        background-color: black;
        margin: 0 auto;
    }
    @keyframes clock-move {
        from{
            transform: rotateZ(0);
        }
        to{
            /* 1turn = 360deg */
            transform: rotateZ(1turn);
        }
    }
</style>

三、效果图:

p4c9j-var6n.gif

相关文章

  • css动画小练习——时钟

    前言 本篇文章将使用css来做一个简单的时钟效果(由于没有使用js来做时间矫正,所以时钟虽然可以正常运行,但是具体...

  • 小练习:时钟

  • css动画学习——钟表clock

    这是一个采用CSS动画 绘制钟表的练习,代码如下 html css js

  • 10月总结

    1关于时钟的CSS动画 代码部分 transform-origin是指旋转元素的基点,在animation中可以设...

  • CSS动画篇之炫酷时钟之时钟墙

    通过CSS制作的时钟大家肯定看到的多了,但是像下面这样的时钟是不是很少见,整个时钟是有很多个小的时钟组合而成,每秒...

  • 时钟动画

    最近项目中用到了一些动画效果,研究的过程中发现挺有意思,那就分享一下喽!首先看一下素材: 下面是实现后的效果: 代...

  • 动画时钟

  • CSS-3D知识

    1.CSS动画 1.1 CSS动画属性-animation animation:为CSS动画属性,使用该属性可以替...

  • css动画小练习——3D盒子

    前言 使用CSS动画实现将6个图片拼成正方体,并且旋转的练习。 一、html部分 HTML部分基本没啥好说的,就是...

  • Css动画 小球横移

    学习css 动画,建立小球左右横移的动画原料:html5 Css3html CSS css 动画属性介绍 其中an...

网友评论

      本文标题:css动画小练习——时钟

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