博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【CSS3】纯CSS代码实现模拟时钟,+js对时功能。
阅读量:5174 次
发布时间:2019-06-13

本文共 2187 字,大约阅读时间需要 7 分钟。

使用CSS3纯代码来实现模拟时钟,及指针动画功能。

在这里主要使用到css3一些基本元素:
border-radius:圆角边框,画圆形;表盘
Transform:变换,旋转,扭曲;刻度盘,指针形状
Animation:时分秒指针转动。
:before/:after :伪元素

基本思路:

  • 3
  • 6
  • 9
  • 12

-----------------------

1.使用div+css画圆来定义时钟底盘,使用其伪类:before和:after,相当于增加两个容器,用于设计表盘轮廓或定位线;使用border-radius属性设计圆形。

 

图1.使用伪元素将一个div变为三个可用的容器。

    new document   

2.使用li的block属性设计两端的边框来定义时钟的60个刻度。设置li的上下边框线使其成为2个刻度,使用li的伪类:before和:after,分别增加2个刻度;即时,1个li元素就可以定义3个层块6个刻度。所以,需要10个li来完成60十个刻度。

  <style type="text/css">
 .Numerals{
 display:inline-block;
 width:3px;height:351px;
 top:11px;left:203px;
 border-top:15px solid #000;
 border-bottom:15px solid #000;
 }

  </style>

  <ul>
 <li class="Numerals"></li>
 <li></li>
  </ul>
然后通过旋转完成60个刻度。

3.定义指针:li为指针主体,li:before和li:after来定义指针头部和尾部(矩形变形为菱形transform:rotate(-45deg) skew(-30deg,-30deg);,矩形3角圆角为水滴型border-radius:100% 0 100% 100%;)

4.指针动画:定位好表轴位置(旋转点)transform-origin:2px 100%;然后设计秒针分针时针的旋转动画即可:秒针每秒跳一格6度,60秒360度;分针12秒跳一格6度,3600秒360度;时针可以设计为连续走、每秒跳或按格跳、按半格跳等。

.hourHand{ animation:anim_hr 43200s linear infinite; }

.minuteHand{ animation:anim_min 3600s  steps(60) infinite; }
.secondHand{ animation:anim_sec 60s steps(60) infinite; }

@keyframes anim_sec{

 from{transform:rotate(0deg) ;}
 to{ transform:rotate(360deg) ;}
}
@keyframes anim_min{
 to{ transform:rotate(360deg) ;}
}
@keyframes anim_hr{
 to{ transform:rotate(360deg) ;}
}

5.细节处理:表盘样式、logo、浏览器兼容性等。

6.效果图:

7.全部代码:/*---------------20150915---------------*/

  飛天网事-纯CSS模拟时钟+js对时。  
  • 3
  • 6
  • 9
  • 12

--------------------- 本文来自 rtian001 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/rtian001/article/details/48684247?utm_source=copy 

转载于:https://www.cnblogs.com/7qin/p/9703433.html

你可能感兴趣的文章
"类" 库添加继承
查看>>
ucos在s3c2410上运行过程整体剖析之基础知识-与UCOS运行有关的ARM9芯片知识--续 ...
查看>>
存储器的寻址问题 分类: 计算机组成原理 2011-...
查看>>
DDRmenu(翻译)
查看>>
atitit.文件上传带进度条的实现原理and组件选型and最佳实践总结O7
查看>>
Atitit 架构的原则attilax总结
查看>>
ASP.Net之数据绑定
查看>>
Android自动化测试第三季第二讲Toast控件文字获取
查看>>
Google Analytics的能与不能
查看>>
Ubuntu 基本操作
查看>>
JAVA数组的定义及用法
查看>>
18寒假第七测
查看>>
帧中继
查看>>
105:MyBatis常见实用面试题整理
查看>>
Base on QC Automation Framework v1.0
查看>>
bzoj 3261: 最大异或和 (可持久化trie树)
查看>>
UVA 11440 Help Tomisu
查看>>
bzoj千题计划258:bzoj3123: [Sdoi2013]森林
查看>>
开博@纪念
查看>>
linux的正则表达式
查看>>