JS+CSS3实现的简易钟表效果示例


Posted in Javascript onApril 13, 2019

本文实例讲述了JS+CSS3实现的简易钟表效果。分享给大家供大家参考,具体如下:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>3water.com js+css3简易钟表</title>
    <style type="text/css">
      *{
        margin: 0;
        padding: 0;
      }
      #wrap{
        width: 300px;
        height: 300px;
        background-color: aliceblue;
        margin: 200px auto;
        position: relative;
        box-sizing: border-box;
      }
      #wrap > div{
        position: absolute;
        top: 50%;
        left: 50%;
      }
      #hour{
        width: 6px;
        height: 60px;
        background-color: #000000;
        margin: -60px -3px;
        transform-origin: 3px 60px;
      }
      #min{
        width: 4px;
        height: 80px;
        background-color: #000000;
        margin: -80px -2px;
        transform-origin: 2px 80px;
      }
      #sec{
        width: 2px;
        height: 100px;
        background-color: red;
        margin: -100px -1px;
        transform-origin: 1px 100px;
      }
      #point{
        width: 20px;
        height: 20px;
        background-color: burlywood;
        margin: -10px -10px;
        border-radius: 50%;
      }
      #circle{
        width: 300px;
        height: 300px;
        position: relative;
      }
      #circle li{
        list-style: none;
        width: 2px;
        height: 6px;
        background-color: #000000;
        position: absolute;
        transform-origin: 1px 150px;
        left: 149px;
        top: 0px;
      }
    </style>
  </head>
  <body>
    <div id="wrap">
      <div id="hour"></div>
      <div id="min"></div>
      <div id="sec"></div>
      <div id="point"></div>
      <ul id="circle"></ul>
    </div>
  </body>
  <script type="text/javascript">
    var hourDom=document.getElementById('hour');
    var minDom=document.getElementById('min');
    var secDom=document.getElementById('sec');
    var cricle=document.getElementById('circle');
    //创建表盘,ul宽高为wrap宽高,以wrap中心点为变换基点,动态分配6°的li
    for (var i=0;i<60;i++) {
      var li=document.createElement('li');
      cricle.appendChild(li);
      li.style.transform='rotate('+i*6+'deg)';
    }
    //延时函数,确保每一秒更新一次最新时间。并且计算时间准确值。
    setInterval(function(){
    var date=new Date();
    var hour=date.getHours();
    var min=date.getMinutes();
    var sec=date.getSeconds();
    min+=sec/60;
    hour+=min/60;
    //当前时间*每个单位时间走的角度=指针指向
    hourDom.style.transform='rotate('+hour*30+'deg)';
    minDom.style.transform='rotate('+min*6+'deg)';
    secDom.style.transform='rotate('+sec*6+'deg)';
    },1000)
  </script>
</html>

运行效果:

JS+CSS3实现的简易钟表效果示例

感兴趣的朋友可使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试一下运行效果。

Javascript 相关文章推荐
jQuery设置和获取HTML、文本和值示例
Jul 08 Javascript
node.js中实现同步操作的3种实现方法
Dec 05 Javascript
Javascript中级语法快速入手
Jul 30 Javascript
BootStrap Table 分页后重新搜索问题的解决办法
Aug 08 Javascript
SelectPage v2.4 发布新增纯下拉列表和关闭分页功能
Sep 07 Javascript
vue+swiper实现组件化开发的实例代码
Oct 26 Javascript
关于JavaScript中高阶函数的魅力详解
Sep 07 Javascript
小程序最新获取用户昵称和头像的方法总结
Sep 23 Javascript
react用Redux中央仓库实现一个todolist
Sep 29 Javascript
CountUp.js数字滚动插件使用方法详解
Oct 17 Javascript
解决基于 keep-alive 的后台多级路由缓存问题
Dec 23 Javascript
vue监听键盘事件的相关总结
Jan 29 Vue.js
JS实现倒序输出的几种常用方法示例
Apr 13 #Javascript
JS实现马赛克图片效果完整示例
Apr 13 #Javascript
ES6入门教程之let、const的使用方法
Apr 13 #Javascript
ES6入门教程之变量的解构赋值详解
Apr 13 #Javascript
微信小程序template模版的使用方法
Apr 13 #Javascript
vue基于viewer实现的图片查看器功能
Apr 12 #Javascript
js form表单input框限制20个字符,10个汉字代码实例
Apr 12 #Javascript
You might like
使用dump函数,给php加断点测试
2013/06/25 PHP
网页的分页下标生成代码(PHP后端方法)
2016/02/03 PHP
PHP策略模式定义与用法示例
2017/07/27 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
Laravel 加载第三方类库的方法
2018/04/20 PHP
Javascript结合css实现网页换肤功能
2009/11/02 Javascript
JS按回车键实现登录的方法
2014/08/25 Javascript
jQuery解析json数据实例分析
2015/11/24 Javascript
jQuery实现伪分页的方法分享
2016/02/17 Javascript
JS 全屏和退出全屏详解及实例代码
2016/11/07 Javascript
mui上拉加载功能实例详解
2017/04/13 Javascript
BootStrap TreeView使用实例详解
2017/11/01 Javascript
Angular2.0实现modal对话框的方法示例
2018/02/18 Javascript
详解Node.js中path模块的resolve()和join()方法的区别
2018/10/29 Javascript
用Fundebug插件记录网络请求异常的方法
2019/02/21 Javascript
详解用vue2.x版本+adminLTE开源框架搭建后台应用模版
2019/03/15 Javascript
Vue 打包体积优化方案小结
2020/05/20 Javascript
javascript如何使用函数random来实现课堂随机点名方法详解
2020/07/28 Javascript
[01:01:23]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第一场 11.26
2020/11/30 DOTA
浅谈python图片处理Image和skimage的区别
2019/08/04 Python
Python解压 rar、zip、tar文件的方法
2019/11/19 Python
python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)
2020/02/09 Python
解决python运行效率不高的问题
2020/07/20 Python
python subprocess pipe 实时输出日志的操作
2020/12/05 Python
解决virtualenv -p python3 venv报错的问题
2021/02/05 Python
英国天然宝石首饰购买网站:Gemondo Jewellery
2018/10/23 全球购物
局部内部类是否可以访问非final变量?
2013/04/20 面试题
高一家长会邀请函
2014/01/12 职场文书
运动会通讯稿50字
2014/01/30 职场文书
作风整顿剖析材料
2014/09/30 职场文书
房屋租赁委托书范本
2014/10/04 职场文书
2014学习十八届四中全会精神思想汇报范文
2014/10/23 职场文书
初中教师德育工作总结2015
2015/05/12 职场文书
2016年优秀教师先进事迹材料
2016/02/26 职场文书
详解python字符串驻留技术
2021/05/21 Python
深入理解pytorch库的dockerfile
2022/06/10 Python