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 相关文章推荐
js复制网页内容并兼容各主流浏览器的代码
Dec 17 Javascript
JS实现从连接中获取youtube的key实例
Jul 02 Javascript
javascript封装 Cookie 应用接口
Aug 07 Javascript
JS实现的竖向折叠菜单代码
Oct 21 Javascript
谈谈JavaScript类型系统之Math
Jan 06 Javascript
javascript返回顶部的按钮实现方法
Jan 09 Javascript
省市区三级联动jquery实现代码
Apr 15 Javascript
js eval函数使用,js对象和字符串互转实例
Mar 06 Javascript
讲解vue-router之什么是动态路由
May 28 Javascript
微信小程序module.exports模块化操作实例浅析
Dec 20 Javascript
深入理解JS异步编程-Promise
Jun 03 Javascript
详解使用JWT实现单点登录(完全跨域方案)
Aug 02 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
用libTemplate实现静态网页的生成
2006/10/09 PHP
按上下级层次关系输出内容的PHP代码
2010/07/17 PHP
php selectradio和checkbox默认选择的实现方法详解
2013/06/29 PHP
Laravel框架中实现使用阿里云ACE缓存服务
2015/02/10 PHP
thinkPHP5.0框架环境变量配置方法
2017/03/17 PHP
php设计模式之职责链模式定义与用法经典示例
2019/09/19 PHP
javascript 设置文本框中焦点的位置
2009/11/20 Javascript
关于递归运算的顺序测试代码
2011/11/30 Javascript
向左滚动文字 js代码效果
2013/08/17 Javascript
jQuery中:text选择器用法实例
2015/01/03 Javascript
javascript面向对象之访问对象属性的两种方式分析
2015/01/13 Javascript
Node.js开发之访问Redis数据库教程
2015/01/14 Javascript
Node.js 学习笔记之简介、安装及配置
2015/03/03 Javascript
jQuery 如何给Carousel插件添加新的功能
2016/04/18 Javascript
JS上传组件FileUpload自定义模板的使用方法
2016/05/10 Javascript
基于JS递归函数细化认识及实用实例(推荐)
2017/08/07 Javascript
JavaScript数据结构之栈实例用法
2019/01/18 Javascript
Javascript实现打鼓效果
2021/01/29 Javascript
[01:20]DOTA2上海特级锦标赛现场采访:谁的ID最受青睐
2016/03/25 DOTA
[01:25:33]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第二场 12.20
2020/12/23 DOTA
Python(Tornado)模拟登录小米抢手机
2013/11/12 Python
Numpy之random函数使用学习
2019/01/29 Python
python实现递归查找某个路径下所有文件中的中文字符
2019/08/31 Python
Python中的Cookie模块如何使用
2020/06/04 Python
pycharm激活方法到2099年(激活流程)
2020/09/22 Python
PyChon中关于Jekins的详细安装(推荐)
2020/12/28 Python
8款使用 CSS3 实现超炫的 Loading(加载)的动画效果
2015/03/17 HTML / CSS
CSS3 box-shadow属性实例详解
2020/06/19 HTML / CSS
名人珠宝设计师:Melinda Maria Jewelry
2019/03/06 全球购物
Perfume’s Club美国官网:西班牙第一家在线美容店
2020/06/10 全球购物
文明礼仪事迹材料
2014/01/09 职场文书
2015年计生工作总结范文
2015/04/24 职场文书
2015年乡镇平安建设工作总结
2015/05/13 职场文书
redis配置文件中常用配置详解
2021/04/14 Redis
基于Python实现将列表数据生成折线图
2022/03/23 Python
解决MySQL报“too many connections“错误
2022/04/19 MySQL