前段时间发的五子棋的游戏很多小伙伴都私聊让再做个,今天小猿圈web前端讲师为大家分享的是CSS3动画练习案例:用CSS3做个钟表,想玩的小伙伴记得自己运行一下呦。

自学CSS3属性之后,我们来用一个小案例进行一个综合练习,这个案例主要是动画的应用,我们就用纯css动画做一个能走字的钟表。

首先我们来准备HTML来布局一下:

<body>

<div class="clock">

<div class="line1"></div>

<div class="line2"></div>

<div class="line3"></div>

<div class="line4"></div>

<div class="line5"></div>

<div class="line6"></div>

<div class="cent"></div>

<div class="cover"></div>

<div class="hour"></div>

<div class="minute"></div>

<div class="seconds"></div>

</div>

</body>

布局很简单,六根直线通过旋转一定角度做刻度一个中间小圆点,一个遮罩来盖住六根直线的中间部分,使直线变成刻度,后面三个是时分秒针。

下面通过CSS把钟表的大概样子设置出来。

.clock {

/* 创建圆形盒子当做表盘 */

width: 200px;

height: 200px;

margin: 100px auto;

position: relative;

border: 10px solid #000;

border-radius: 50%;

}

.clock div:nth-child(-n+6) {

/* 选中前6个子元素做出6条线当做表的刻度 */

width: 6px;

height: 200px;

background-color: #aaa;

position: absolute;

left: 50%;

margin-left:-3px;

}

/* 让6条线递增旋转30度 */

.clock div:nth-child(1) {

transform: rotate(30deg);

}

.clock div:nth-child(2) {

transform: rotate(60deg);

}

.clock div:nth-child(3) {

transform: rotate(90deg);

background-color: #333;

}

.clock div:nth-child(4) {

transform: rotate(120deg);

}

.clock div:nth-child(5) {

transform: rotate(150deg);

}

.clock div:nth-child(6) {

transform: rotate(0deg);

background-color: #333;

}

/* 中心小圆点 */

.cent {

width: 20px;

height: 20px;

background-color: #000;

border-radius: 50%;

position:absolute;

z-index: 3;

left: 50%;

top:50%;

margin: -10px 0 0 -10px;

z-index:2;

}

/* 遮住线的中间部分,让线成为刻度 */

.cover {

width: 180px;

height: 180px;

border-radius: 50%;

background-color: #fff;

position:absolute;

left: 50%;

top:50%;

margin:-90px 0 0 -90px;

}

后面加上中心圆点和遮罩,让它看起来像个表盘。

接下来我们就可以准备表针和动画了。

/* 时针制作 */

.hour {

width: 6px;

height: 50px;

background-color: #000;

position:absolute;

left: 50%;

top:100px;

margin-left: -3px;

animation: clockrotate 43200s steps(43200) infinite linear;

transform-origin: top center;

}

/* 分针制作 */

.minute {

width: 60px;

height: 6px;

background-color: #555;

position:absolute;

left:40px;

top:50%;

margin-top: -3px;

animation: clockrotate 3600s steps(3600) infinite;

transform-origin: center right;

}

/* 秒针制作 */

.seconds {

width: 4px;

height: 70px;

background-color:red;

position: absolute;

left:50%;

top:30px;

margin-left: -2px;

animation: clockrotate 60s steps(60) infinite ;

transform-origin: bottom center;

}

/* 设置动画序列 */

@keyframes clockrotate {

form{

}

to {

transform: rotate(360deg);

}

}

设置每个针的动画是旋转360度,根据时、分、秒来计算动画执行完毕需要的时间和步数,加个infinite无限执行,另外还要注意表针旋转的中心点设置。

上述就是小猿圈老师针对CSS3动画练习案例:用CSS3做个钟表介绍,相信你对web前端也是有一定的了解的web前端自学②群:738735873,如果遇到不会的问题可以到小猿圈去寻找答案的,里面有最新最全面的视频教程等你来学习,只要你想学习编程这里都有。

转载于:https://juejin.im/post/5cee5167e51d45590a445ad9

小猿圈自学web前端之CSS3动画练习案例:用CSS3做个钟表相关推荐

  1. 小猿圈分享-web报表中电子印章/水印的轻松实现

    报表数据系统中,有一个重要功能叫做电子签章,通俗的讲,就是不需要实际去盖章,而直接把印章打印到纸质文件上,省去手工盖章的费时费力环节,例如,银行系统中的银行流水打印,都需要盖章才能生效,如果按传统的做 ...

  2. 自学web前端练手——咖啡店主页(html+css3+js)

    有参照页面,图片百度搜的+星巴克官网存的,半自撸. header部分用js实现图片来回切换. nav导航栏是超链接. 最左侧单一的图片是广告栏. 主体部分由左侧aside和右侧content组成. a ...

  3. 前端 鼠标一次移动半个像素_小猿圈分享2019年前端JavaScript面试题(三)

    上篇文章小猿圈前端讲师为你分享了前端面试中js遇到的一些基础问题,接下来给大家讲解的就是前端基础和理论问题都有哪些,想学习web前端就来小猿圈自学吧,里面有全面的技术指导,还有专业的老师为你解答问题. ...

  4. 小猿看图CDN_小猿圈分析Linux运维工程师面试

    原标题:小猿圈分析Linux运维工程师面试 互联网发展到了今天,很多同学都开始学习编程,java.python.linux.html5前端都是现在比较火爆的行业之一,而学习linux前端的同学也是最多 ...

  5. 前端 input怎么显示null_小猿圈WEB前端之HTML5+CSS3面试题(一)

    学习是一件非常充实的过程,特别是把自己的乐趣变成工作的时候,很多朋友就喜欢学习web前端,所以学习前端,也希望从事前端的工作,但是因为缺少实战经验,所以很多都是卡在面试这关上,下面小猿圈总结了web前 ...

  6. 小猿圈WEB前端之HTML5+CSS3面试题(一)

    越来越多人喜欢前端岗位,毕业季已经悄然来临,很多毕业生面临找工作,那你们在狂欢快乐最后恋恋不舍之际,是否想着过几天招工作的危机.如果想要毕业之后,走向前端的岗位,那看到小编的文章后好好做一下这套题,今 ...

  7. 小猿圈web前端之移动端Vue+Vant实现上传压缩旋转图片功能

    小猿圈web前端讲师为了大家更好的学习前端知识决定每天分享一个web前端案例,希望对你与学习前端的你有所帮助,今天分享的是移动端Vue+Vant的Uploader实现上传.压缩.旋转图片等功能的详细介 ...

  8. 小猿圈web前端简述canvas如何实现二维码和图片合成

    你经常看到活动海报什么的,上都是有各种宣传文案以及二维码形成的,你知道怎么用canvas实现二维码和图片合成,下面小猿圈Linux讲师为你详细介绍一下canvas如何实现二维码和图片合成的. 使用ur ...

  9. css怎么使元素绝对定位有过度效果_小猿圈web前端讲解div+css绝对定位和相对定位...

    最近很多网友问我绝对定位和相对定位怎么区分,怎么使用?绝对是什么地方的绝对,相对又是相对于什么地方而言的呢?那他们又有什么样的特性,可以做出什么样的效果呢?关于两者之间又有什么样的技巧呢?下面小猿圈w ...

最新文章

  1. The Longest Increasing Subsequence (LIS)
  2. php 显示数据库操作错误,php操作mysql数据库编码错误
  3. mysql学习笔记之mysqlparameter(摘)
  4. 面向对象第四单元总结和期末总结
  5. python jdk安装_环境搭建:1.JDK安装配置
  6. 使用Movavi Photo Editor如何向视频中添加转场
  7. poj3274 找平衡数列(哈希加一点数学思维)
  8. Java多窗口编程示例
  9. 【数据库系统概论】数据库系统概述
  10. [译]nanomsg和ZeroMQ的区别
  11. 登上大别山主景区天堂寨
  12. pool(一)——入门
  13. 【数据库内核】数据库核心技术演进之路
  14. UBOOT----基于itop4412开发板,从0开始,慢慢摸索UBOOT的启动流程和系统组织结构(一)
  15. 【机器学习】线性回归实战案例一:多元素情况下广告投放效果分析步骤详解
  16. ci框架 反向代理配置_通过 nginx-proxy 实现自动反向代理和 HTTPS
  17. 从IO谈论编程的基础
  18. 文本PDG文件名构成
  19. [SCOI2009]粉刷匠 牛客DP入门
  20. 直播平台软件开发的前端如何实现整套视频直播技术流程

热门文章

  1. 科技互联网公司真的越来越重视数学了吗?
  2. AAAI 2020 Oral论文--TANet:提升点云3D目标检测的稳健性
  3. 阿里巴巴宣布成立人工智能治理与可持续发展实验室
  4. SAP QM 物料主数据检验类型上的Skips allowed
  5. SAP PM 初级系列7 - 定义工厂区域
  6. 驭下术:如何让下属老实听话?用这3招,让你不怒自威
  7. 5G、物联网、人工智能和机器学习将成为2021年最重要的技术
  8. 陶大程院士:深度学习“泛化”理论的回顾与前沿
  9. 机器学习|最简单易懂的机器学习
  10. 挡不住的AI成熟趋势