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 相关文章推荐
在你的网页中嵌入外部网页的方法
Apr 02 Javascript
js 动态添加标签(新增一行,其实很简单,就是几个函数的应用)
Mar 26 Javascript
使用JavaScript检测Firefox浏览器是否启用了Firebug的代码
Dec 28 Javascript
jquery的ajax异步请求接收返回json数据实例
Jun 16 Javascript
JavaScript设计模式之装饰者模式介绍
Dec 28 Javascript
简述JavaScript的正则表达式中test()方法的使用
Jun 16 Javascript
Bootstrap按钮功能之查询按钮和重置按钮
Oct 26 Javascript
浅析JavaScript中作用域和作用域链
Dec 06 Javascript
VUE多层路由嵌套实现代码
May 15 Javascript
vue获取时间戳转换为日期格式代码实例
Apr 17 Javascript
React组件设计模式之组合组件应用实例分析
Apr 29 Javascript
javascript读取本地文件和目录方法详解
Aug 06 Javascript
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
详解:――如何将图片储存在数据库里
2006/12/05 PHP
如何突破PHP程序员的技术瓶颈分析
2011/07/17 PHP
php array_reverse 以相反的顺序返回数组实例代码
2017/04/11 PHP
PHP+MySQL实现消息队列的方法分析
2018/05/09 PHP
PHP中number_format()函数的用法讲解
2019/04/08 PHP
CI框架教程之优化验证码机制详解【验证码辅助函数】
2019/04/16 PHP
Javascript 获取字符串字节数的多种方法
2009/06/02 Javascript
Javascript中valueOf与toString区别浅析
2013/03/19 Javascript
js中事件的处理与浏览器对象示例介绍
2013/11/29 Javascript
js简单实现竖向tab选项卡的方法
2015/05/04 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
2015/06/05 Javascript
js基础知识(公有方法、私有方法、特权方法)
2015/11/06 Javascript
jQuery实现获取h1-h6标题元素值的方法
2017/03/06 Javascript
nodejs 终端打印进度条实例代码
2017/04/22 NodeJs
Angular浏览器插件Batarang介绍及使用
2018/02/07 Javascript
使用vue点击li,获取当前点击li父辈元素的属性值方法
2018/09/12 Javascript
vue使用Font Awesome的方法步骤
2019/02/26 Javascript
layui弹出框Tab选项卡的示例代码
2019/09/04 Javascript
layui button 按钮弹出提示窗口,确定才进行的方法
2019/09/06 Javascript
在vue中利用v-html按分号将文本换行的例子
2019/11/14 Javascript
vue 通过base64实现图片下载功能
2020/12/19 Vue.js
Python Django切换MySQL数据库实例详解
2019/07/16 Python
使用matplotlib绘制图例标签中带有公式的图
2019/12/13 Python
Python 获取异常(Exception)信息的几种方法
2020/12/29 Python
利用CSS3实现毛玻璃效果示例源码
2016/09/25 HTML / CSS
HTML5 3D书本翻页动画的实现示例
2019/08/28 HTML / CSS
HelloFresh奥地利:立即订购烹饪盒
2019/02/22 全球购物
TheFork葡萄牙:欧洲领先的在线餐厅预订平台
2019/05/27 全球购物
美国家居装饰购物网站:Amanda Lindroth
2020/03/25 全球购物
六道php面试题附答案
2014/06/05 面试题
高校自主招生自荐信
2013/12/09 职场文书
植树节活动总结
2014/04/30 职场文书
关于奉献的演讲稿
2014/05/21 职场文书
2014年感恩节活动策划方案
2014/10/06 职场文书
工作失误检讨书范文
2015/01/26 职场文书
团干部培训班心得体会
2016/01/06 职场文书