关于HTML5和CSS3的时钟应用在之前我们已经分享过不少了,还有一些HTML5的日期选择应用。今天我们要分享一款基于HTML5和CSS3的圆盘秒表动画,秒表可以精确到0.001秒,并且可以在计时过程中暂停计时,同时秒表可以随时重置。

在线演示

下面来分析一下实现的源代码,主要由HTML和CSS代码组成,CSS相对比较复杂,因为涉及到动画。

HTML代码:

<input id="help" name="controls" type="checkbox" />
<input id="settings" name="controls" type="checkbox" /> <input id="orange" name="color" type="radio" />
<input id="green" name="color" type="radio" checked="checked" /> <div> <input id="start" name="controls" type="radio" />
<input id="stop" name="controls" type="radio" />
<input id="reset" name="controls" type="radio" /> <div>
<div>
<div>
</div>
</div> <div>
<div>
<div>
0 1 2 3 4 5 6 7 8 9
</div>
</div>
<div>
<div>
0 1 2 3 4 5 6 7 8 9
</div>
</div>
<div>
:
</div> <div>
<div>
0 1 2 3 4 5
</div>
</div>
<div>
<div>
0 1 2 3 4 5 6 7 8 9
</div>
</div>
<div>
:
</div> <div>
<div>
0 1 2 3 4 5
</div>
</div>
<div>
<div>
0 1 2 3 4 5 6 7 8 9
</div>
</div>
<div>
:
</div> <div>
<div>
0 1 2 3 4 5 6 7 8 9
</div>
</div>
<div>
<div>
0 1 2 3 4 5 6 7 8 9
</div>
</div>
<div>
<div>
0 1 2 3 4 5 6 7 8 9
</div>
</div> </div> <div>
<label id="haptic" for="stop">
</label>
<label id="haptic2" for="start">
</label>
<label id="haptic3" for="reset">
</label> </div> </div> </div>

这里主要是定义了圆盘时钟的基本结构,以及开始、暂停和复位按钮。接下来重点是CSS代码:

CSS代码:

首先来定义一些动画:

@-webkit-keyframes start_haptic {from { -webkit-transform:scale(.98)}to {}}
@-webkit-keyframes stop_haptic {from { -webkit-transform:scale(.98)}to {}}
@-webkit-keyframes reset_haptic {from { -webkit-transform:scale(.98)}to {}} @-webkit-keyframes launch {from { -webkit-transform:scale(1.2); opacity:} to {}}
@-webkit-keyframes info {from { -webkit-transform:scale(.8) translateY(100px); opacity:} to {}}
@-webkit-keyframes menu {from { -webkit-transform:scale(.9) translateY(-50px); opacity:} to {}} @-webkit-keyframes reset {from {-webkit-transform:rotateZ(180deg);} 60%{ -webkit-transform:rotateZ(-30deg);} 70%{ -webkit-transform:rotateZ(10deg);} 80%{ -webkit-transform:rotateZ(-10deg);}to { -webkit-transform:rotateZ(0);}} @-webkit-keyframes arrow { from { -webkit-transform: rotateZ(0deg);}to{-webkit-transform: rotateZ(360deg)}}
@-webkit-keyframes sec{ from { top:0px;}to{top:-300px;}}
@-webkit-keyframes sec1{ from { top:0px;}to{top:-180px;}}

再将这些动画在各个按钮被激活时启用这些动画:

.start:checked~.container .mil0{-webkit-animation-play-state:running;}
.stop:checked~.container .mil0{-webkit-animation-play-state:paused;}
.start:checked~.container .mil{-webkit-animation-play-state:running;} .stop:checked~.container .mil{-webkit-animation-play-state:paused;}
.start:checked~.container .mil1{-webkit-animation-play-state:running;}
.stop:checked~.container .mil1{-webkit-animation-play-state:paused;} .reset:checked~.container .mil1{-webkit-animation:none;top:;transition:.2s;}
.reset:checked~.container .mil0{-webkit-animation:none;top:;transition:.2s;}
.reset:checked~.container .mil{-webkit-animation:none;top:;transition:.2s;} .start:checked~.container .sec{-webkit-animation-play-state:running;}
.stop:checked~.container .sec{-webkit-animation-play-state:paused;}
.reset:checked~.container .sec{-webkit-animation:none;top:;transition:.2s;} .start:checked~.container .sec1{-webkit-animation-play-state:running;}
.stop:checked~.container .sec1{-webkit-animation-play-state:paused;}
.reset:checked~.container .sec1{-webkit-animation:none;top:;transition:.2s;} .start:checked~.container .min{-webkit-animation-play-state:running;}
.stop:checked~.container .min{-webkit-animation-play-state:paused;}
.reset:checked~.container .min{-webkit-animation:none;top:;transition:.2s;} .start:checked~.container .min1{-webkit-animation-play-state:running;}
.stop:checked~.container .min1{-webkit-animation-play-state:paused;}
.reset:checked~.container .min1{-webkit-animation:none;top:;transition:.2s;} .start:checked~.container .arrow{-webkit-animation-play-state:running;}
.stop:checked~.container .arrow{-webkit-animation-play-state:paused;}
.reset:checked~.container .arrow{-webkit-animation:reset .4s; -webkit-animation-fill-mode:forwards;} .controls{ height:60px;width:200px;margin:0 auto; position:relative; } .stop_,.start_{position:absolute; z-index:; height:60px; width:80px; left:60px; transition:.2s; background-position:center center;background-repeat:no-repeat;}

最后将源代码一并附上,下载地址>>

HTML5超酷秒表动画 可暂停和重置秒表的更多相关文章

  1. 16款最佳HTML5超酷动画演示及源码

    1.HTML5/CSS3图片选择动画 可选择多张图片 之前我们已经分享过几款很酷的HTML5图片特效,像HTML5 3D图片折叠特效.HTML5 3D旋转图片相册等应用.今天我们来分享一款既炫酷又实用 ...

  2. HTML5/CSS3超酷环形动画菜单

    在线演示 本地下载

  3. 超酷JQuery动画分页按钮,鼠标悬停滑动展开

    1.效果及功能说明 animate动画分页按钮制作鼠标悬停分页按钮上滑动展开分页按钮,鼠标离开后分页按钮收缩 2.实现原理 主要是靠动画方法,来让原本的箭头图像的长度发生变长,正好可以融入下标题的文字 ...

  4. 超酷创意HTML5动画演示及代码

    HTML5是未来的网页开发神器,今天分享的这些HTML5动画大部分利用了CSS3的动画属性来实现,废话不多说,直接上演示和代码. HTML5/CSS3实现大风车旋转动画 这次我们要来分享一款很酷的HT ...

  5. 推荐9款使用CSS3实现的超酷动画效果

    大家都知道,在网页制作时使用CSS技术,可以有效地对页面的布局.字体.颜色.背景和其它效果实现更加精确的控制.只要对相应的代码做一些简单的修改,就可以改变同一页面的不同部分,或者页数不同的网页的外观和 ...

  6. 10款基于HTML5+CSS3实现的超酷源码动画

    1.基于Bootstrap的jQuery登录表单 这是一款基于Bootstrap的登录表单,表单的外观自然不用说,沿用了Bootstrap的风格,非常漂亮.这款登录表单有一个经过CSS3处理过的头像图 ...

  7. 8款超酷的HTML5 3D图片动画源码

    1.HTML5移动端图片左右切换动画 今天要给大家分享一款很不错的图片左右切换焦点图动画,并且支持移动端触摸滑动.功能上,这款HTML5图片播放器支持鼠标滑动.手机端触摸滑动以及自动播放.外观上,这款 ...

  8. 7款超酷HTML5 3D动画精选应用及源码

    对以前来讲,3D动画拿到网页上展示是一件非常奢侈的事情,第一是浏览器不够先进,第二是大部分只能用flash实现伪3D.HTML5的出现,让实现网页3D动画变得非常简单,当然前提是你不要再使用像IE67 ...

  9. 超酷震撼 HTML5/CSS3动画应用及源码

    HTML5可以制作非常华丽的动画效果,这点通过之前的分享学习我们已经有深刻的了解了,今天我们主要来分享一些HTML5结合CSS3形成的超炫震撼的动画应用以及它们的源代码,真的非常不错. 1.纯CSS3 ...

随机推荐

  1. 潭州课堂25班:Ph201805201 WEB 之 页面编写 第一课 (课堂笔记)

    index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  2. 潭州课堂25班:Ph201805201 第十六课 正则 (课堂笔记)

    import re 元字符: . ^ $ * + ? {} \ () # s = 'abcdefg' # s.find('c') # print(s.find('cd')) ## 查找 # b = s ...

  3. 搞IT,算法编程不错的学习网址 & 一些专栏博客大神的地址(汇总)

    博客专栏大神 王晓华(算法的乐趣) 算法系列:http://blog.csdn.net/orbit/article/category/830251 PostgreSQL深入理解内核系列:http:// ...

  4. java的关键字与保留字

    1,Java 关键字列表 (依字母排序 共50组): abstract, assert, boolean, break, byte, case, catch, char, class, const(保 ...

  5. git的安装以及入门

    安装:https://blog.csdn.net/itpinpai/article/details/48105445 (1)下载文件 初始化 git init 连远程服务器 git remote ad ...

  6. unity小知识了解

    在搜索栏的右侧有三个按钮,单击第一个按钮,弹出相应菜单,可以根据目标类型过滤搜索结果.[按钮从左到右] 第二个按钮,提供素材标签来过滤搜索结果,可以自定义标签. 第三个按钮,提供了将搜索结果添加到前面 ...

  7. POST数据中有特殊符号导致数据丢失的解决方法

    使用Ajax传送数据时,当数据中存在加号(+).连接符(&)或者百分号(%)时,服务器端接收数据时会丢失数据.分析Ajax传送数据的格式与Javascript的语法: 1. "+&q ...

  8. C#线程篇---Task(任务)和线程池不得不说的秘密

    我们要知道的是,QueueUserWorkItem这个技术存在许多限制.其中最大的问题是没有一个内建的机制让你知道操作在什么时候完成,也没有一个机制在操作完成是获得一个返回值,这些问题使得我们都不敢启 ...

  9. 在AngularJS中实现一个延迟加载的Directive

    所谓的延迟加载通常是:直到用户交互时才加载.如何实现延迟加载呢? 需要搞清楚三个方面: 1.html元素的哪个属性需要延迟加载?2.需要对数据源的哪个字段进行延迟加载?3.通过什么事件来触发延迟加载? ...

  10. 学习shader之前必须知道的东西之计算机图形学-渲染管线

    引言 shader到底是干什么用的?shader的工作原理是什么? 其实当我们对这个问题还很懵懂的时候,就已经开始急不可耐的要四处搜寻有关shader的资料,恨不得立刻上手写一个出来.但看了一些资料甚 ...