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 相关文章推荐
跟我学习javascript的最新标准ES6
Nov 20 Javascript
AngularJS 中的Promise --- $q服务详解
Sep 14 Javascript
jQuery实现输入框邮箱内容自动补全与上下翻动显示效果【附demo源码下载】
Sep 20 Javascript
jQuery动态添加与删除tr行实例代码
Oct 18 Javascript
微信小程序 教程之wxapp视图容器 scroll-view
Oct 19 Javascript
JS实现图片放大缩小的方法
Feb 15 Javascript
AngularJS中的路由使用及实现代码
Oct 09 Javascript
vue的常用组件操作方法应用分析
Apr 13 Javascript
vue如何安装使用Quill富文本编辑器
Sep 21 Javascript
微信小程序中显示倒计时代码实例
May 09 Javascript
koa router 多文件引入的方法示例
May 22 Javascript
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
Dec 30 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
PHP获取数组中某元素的位置及array_keys函数应用
2013/01/29 PHP
phpmyadmin打开很慢的解决方法
2014/04/21 PHP
php简单实现无限分类树形列表的方法
2015/03/27 PHP
PHP中使用register_shutdown_function函数截获fatal error示例
2015/04/21 PHP
总结对比php中的多种序列化
2016/08/28 PHP
使用WAMP搭建PHP本地开发环境
2017/05/10 PHP
JQuery实现自定义对话框的代码
2008/06/15 Javascript
javascript string字符串优化问题
2011/07/31 Javascript
js对table的td进行相同内容合并示例详解
2013/12/27 Javascript
Nodejs学习笔记之入门篇
2015/04/16 NodeJs
JavaScript数组迭代器实例分析
2015/06/09 Javascript
JS基于myFocus库实现各种功能的tab选项卡切换效果
2015/09/19 Javascript
利用JQuery阻止事件冒泡
2016/12/01 Javascript
javascript实现文字无缝滚动
2016/12/27 Javascript
用director.js实现前端路由使用实例
2017/01/27 Javascript
jquery操作select取值赋值与设置选中实例
2017/02/28 Javascript
JS解决移动web开发手机输入框弹出的问题
2017/03/31 Javascript
基于jQuery实现图片推拉门动画效果的两种方法
2017/08/26 jQuery
vue 界面刷新数据被清除 localStorage的使用详解
2018/09/16 Javascript
利用layer实现表单完美验证的方法
2019/09/26 Javascript
vue实现图片上传到后台
2020/06/29 Javascript
vue 使用async写数字动态加载效果案例
2020/07/18 Javascript
Python编码时应该注意的几个情况
2013/03/04 Python
python奇偶行分开存储实现代码
2018/03/19 Python
python实现图书借阅系统
2019/02/20 Python
Python里字典的基本用法(包括嵌套字典)
2019/02/27 Python
python flask安装和命令详解
2019/04/02 Python
python语言中有算法吗
2020/06/16 Python
工作自我评价怎么写
2014/01/29 职场文书
转预备党员政审材料
2014/02/06 职场文书
大学开学计划书
2014/04/30 职场文书
讲文明树新风演讲稿
2014/05/12 职场文书
因工资原因离职的辞职信范文
2015/05/12 职场文书
老人院义工活动感想
2015/08/07 职场文书
python解决12306登录验证码的实现
2021/04/18 Python
刚学完怎么用Python实现定时任务,转头就跑去撩妹!
2021/06/05 Python