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 使用手册(四)
Sep 23 Javascript
JavaScript声明变量名的语法规则
Jul 10 Javascript
js实现图片上传并正常显示
Dec 19 Javascript
模板视图和AngularJS之间冲突的解决方法
Nov 22 Javascript
微信小程序 input输入框控件详解及实例(多种示例)
Dec 14 Javascript
js实现炫酷的左右轮播图
Jan 18 Javascript
React Native使用fetch实现图片上传的示例代码
Mar 07 Javascript
浅析Vue.js 中的条件渲染指令
Nov 19 Javascript
JavaScript原型对象原理与应用分析
Dec 27 Javascript
通过npm或yarn自动生成vue组件的方法示例
Feb 12 Javascript
JavaScript强制类型转换和隐式类型转换操作示例
May 01 Javascript
微信小程序开发之map地图组件定位并手动修改位置偏差
Aug 17 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
一个php作的文本留言本的例子(二)
2006/10/09 PHP
有关于PHP中常见数据类型的汇总分享
2014/01/06 PHP
php实现快速排序的三种方法分享
2014/03/12 PHP
php跨服务器访问方法小结
2015/05/12 PHP
PHP 用session与gd库实现简单验证码生成与验证的类方法
2016/11/15 PHP
用js遍历 table的脚本
2008/07/23 Javascript
浅谈javascript的数据类型检测
2010/07/10 Javascript
JavaScript的parseInt 取整使用
2011/05/09 Javascript
在jQuery ajax中按钮button和submit的区别分析
2012/10/07 Javascript
jquery实现表格奇数偶数行不同样式(有图为证及实现代码)
2013/01/23 Javascript
解决JQeury显示内容没有边距内容紧挨着浏览器边线
2013/12/20 Javascript
JavaScript实现将数组中所有元素连接成一个字符串的方法
2015/04/06 Javascript
jQuery实现的进度条效果
2015/07/15 Javascript
JavaScript中this的9种应用场景及三种复合应用场景
2015/09/12 Javascript
js移动焦点到最后位置的简单方法
2016/11/25 Javascript
jQuery遮罩层实例讲解
2017/05/11 jQuery
JavaScript ES6中const、let与var的对比详解
2017/06/18 Javascript
微信小程序使用video组件播放视频功能示例【附源码下载】
2017/12/08 Javascript
基于 D3.js 绘制动态进度条的实例详解
2018/02/26 Javascript
解决vue刷新页面以后丢失store的数据问题
2020/08/11 Javascript
[44:15]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第二局
2016/03/06 DOTA
pycharm 使用心得(七)一些实用功能介绍
2014/06/06 Python
浅谈Python实现2种文件复制的方法
2018/01/19 Python
python实现K最近邻算法
2018/01/29 Python
python制作填词游戏步骤详解
2019/05/05 Python
Python3简单实现串口通信的方法
2019/06/12 Python
python3反转字符串的3种方法(小结)
2019/11/07 Python
详解Flask前后端分离项目案例
2020/07/24 Python
Django通过设置CORS解决跨域问题
2020/11/26 Python
使用CSS3制作倾斜导航条和毛玻璃效果
2017/09/12 HTML / CSS
AHAVA美国官方网站:死海海泥护肤品牌
2016/10/18 全球购物
Laura Mercier官网:彩妆大师罗拉玛斯亚的化妆品牌
2018/01/04 全球购物
英国派对礼服和连衣裙购物网站:TFNC London
2018/07/07 全球购物
C语言编程题
2015/03/09 面试题
大学生村官承诺书
2014/03/28 职场文书
2014年师德承诺书
2014/05/23 职场文书