温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么利用html5制作一个时钟动画效果

发布时间:2021-01-06 10:28:23 阅读:307 作者:小新 栏目:web开发
前端开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

这篇文章主要介绍了怎么利用html5制作一个时钟动画效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

我们先来看下效果图(不考虑颜色搭配):

怎么利用html5制作一个时钟动画效果

我们首先要理解如何去实现这个时钟,暂时不要考虑动画,学着将问题进行拆解,一步一步实现。

首先我们需要画个方形,有个边框,给一个圆角就可以实现最外边的圆环再通过一个长的矩形旋转多个就可以实现刻度

怎么利用html5制作一个时钟动画效果

只要再画一个白色圆面去覆盖就可以实现标准的刻度

怎么利用html5制作一个时钟动画效果

最后再加上三个矩形和中间的小圆面就可以实现时钟的初始状态了

代码实现

以上过程理解了之后,代码实现就简单多了,唯一需要考虑的就是代码的优化问题,以下为了简单明了每一步是如何实现,存在很多重复的代码。

关于动画,我们只需要设置旋转动画就可以了,时分秒针的动画只需要改变不同的时间就可以了。

具体细节注意见代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>时钟</title>
    <style>
        *{
            padding0;
            margin0;
        }
        .clock{
            width300px;
            height300px;
            border10px solid #ccc;
            /*百分比参照的是实际宽高*/
            border-radius50%;
            margin20px auto;
            position: relative;
        }
        .line{
            width8px;
            height300px;
            background-color#ccc;
            position: absolute;
 
            /*实现居中*/
            /*参照父元素的宽*/
            left50%;
            top0;
            /*参照元素本身*/
            transformtranslate(-50%,0);
 
            /*保留,否则会被覆盖*/
 
 
        }
        .line2{
            transformtranslate(-50%,0rotate(30deg);
        }
        .line3{
            transformtranslate(-50%,0rotate(60deg);
        }
        .line4{
            transformtranslate(-50%,0rotate(90deg);
        }
        .line5{
            transformtranslate(-50%,0rotate(120deg);
        }
        .line6{
            transformtranslate(-50%,0rotate(150deg);
        }
 
        .cover{
            width250px;
            height250px;
            border-radius50%;
            background-color#fff;
            position: absolute;
            left50%;
            top50%;
            transformtranslate(-50%,-50%);
        }
        .hour{
            width6px;
            height80px;
            background-color: red;
            position: absolute;
            left50%;
            top50%;
            transformtranslate(-50%,-100%);
 
            /*设置轴心*/
            transform-origin: center bottom;
            /*动画*/
            -webkit-animation: move 43200s linear infinite;
 
        }
        .minute{
            width4px;
            height90px;
            background-color: green;
            position: absolute;
            left50%;
            top50%;
            transformtranslate(-50%,-100%);
 
            /*设置轴心*/
            transform-origin: center bottom;
            /*动画*/
            -webkit-animation: move 3600s linear infinite;
 
 
        }
        .second{
            width2px;
            height100px;
            background-color: blue;
            position: absolute;
            left50%;
            top50%;
            transformtranslate(-50%,-100%);
 
            /*设置轴心*/
            transform-origin: center bottom;
            /*动画*/
            -webkit-animation: move 60s infinite steps(60);
            /*linear与step(60)重复*/
 
        }
        .center{
            width:20px;
            height:20px;
            background-color#ccc;
            border-radius50%;
            position: absolute;
            left50%;
            top50%;
            transformtranslate(-50%,-50%);
 
        }
 
        /*创建移动动画*/
        @keyframes move{
            0%{
                transformtranslate(-50%,-100%rotate(0deg);
            }
            100%{
                transformtranslate(-50%,-100%rotate(360deg);
            }
 
        }
    </style>
</head>
<body>
<div>
    <div class="line line1"></div>
    <div class="line line2"></div>
    <div class="line line3"></div>
    <div class="line line4"></div>
    <div class="line line5"></div>
    <div class="line line6"></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
</div>
</body>
</html>

感谢你能够认真阅读完这篇文章,希望小编分享的“怎么利用html5制作一个时钟动画效果”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×