又一款js时钟!transform实现时钟效果


Posted in Javascript onAugust 15, 2016

又来一个时钟效果了,这个的实现不需要canvas,都是div、ul、li画出的,好玩有真实。 

哈哈~

需要的js才能实现到走动这个效果,但js的内容不多,也不难。
主要是一个css里transform的使用的思路,transform里有很多变幻属性,而普通的时钟
在我心中就是个圆圆的东西,那么是不是可以旋转这个属性(rotate)实现了,它的刻度
使用旋转且把旋转点设置在圆心,那不就可以绕着圆心转了吗,而时针它们的底部不是和
圆心接触的吗,那么设置时针的底部为旋转点不就OK了,大概的说了说思路。 

又一款js时钟!transform实现时钟效果

代码: 

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>transform</title>
  <style id="css">
    #clock{
      width: 200px;
      height: 200px;
      border: 2px solid #000;
      border-radius: 50%;
      margin: 100px auto 0;
      position: relative;
    }
    #clock ul{
      width: 200px;
      height: 200px;
      position: relative;
      list-style: none;
      padding:0;
      margin: 0;
    }
    #clock ul li{
      width: 2px;
      height: 10px;
      background: #000;
      transform-origin: center 100px;
      position: absolute;
      top: 0;
      left: 50%;
    }
    #clock ul li:nth-of-type(5n+1){
      height: 20px;
    }  
    #hour{
      height: 40px;
      width: 4px;
      background: #00fefe;
      position: absolute;
      top: 60px;
      left: 99px;
      transform-origin:center bottom;
    }
    #min{
      height: 60px;
      width: 3px;
      background: #001afe;
      position: absolute;
      top: 40px;
      left: 99px;
      transform-origin: center bottom;
      transform: rotate(15deg);
    }
    #sec{
      height: 70px;
      width: 2px;
      background: #000;
      position: absolute;
      top: 30px;
      left: 99px;
      transform-origin:center bottom;
    }
    #dot{
      width: 10px;
      height: 10px;
      position: absolute;
      left: 95px;
      top: 95px;
      background: #aaa;
      border-radius: 50%;
    }
  </style>
</head>
<body>
  <div id="clock">
    <ul></ul>
    <div id="hour"></div>
    <div id="min"></div>
    <div id="sec"></div>
    <div id="dot"></div>
  </div>
  <script>
    var oCss=document.getElementById("css"); 
    var oClock=document.getElementById("clock");
    var oUl=oClock.getElementsByTagName("ul")[0];
    var oHour=document.getElementById("hour");
    var oMin=document.getElementById("min");
    var oSec=document.getElementById("sec");
    var strLi="";
    var strCss="";
    for(var i=0;i<60;i++){
      strLi+="<li></li>";
    }
    oUl.innerHTML=strLi;
    for(var i=0;i<60;i++){
      strCss+='#clock ul li:nth-of-type('+(i+1)+'){transform:rotate('+i*6+'deg);}';
    }
    oCss.innerHTML+=strCss;
    time();
    setInterval(time,1000);
    function time(){
    var date=new Date();
    var h=date.getHours();
    var m=date.getMinutes();
    var s=date.getSeconds();

    oHour.style.transform="rotate("+(h+m/60)*30+"deg)";
    oMin.style.transform="rotate("+(m+s/60)*6+"deg)";
    oSec.style.transform="rotate("+s*6+"deg)";
    }
  </script>
</body>
</html>

使用标签画图最主要的是定位,因为这样我们就可以把弄到形状的盒子放到你所想要的位置,内部css样式表是可以使用获取元素的方式获取的,这样就可以 使用innerHTML为其添加样式,且可以循环添加,还有因为刻度太多所以使用循环添加,这样省时省力,至于剩下的就是定时器了,给定好1秒的时间,每1 秒执行一次函数,这样它就是动起来了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
在一个浏览器里呈现所有浏览器测试结果的前端测试工具的思路
Mar 02 Javascript
jquery五角星评分插件示例分享
Feb 21 Javascript
javaScript基础语法介绍
Feb 28 Javascript
Jquery日期选择datepicker插件用法实例分析
Jun 08 Javascript
JS数组去掉重复数据只保留一条的实现代码
Aug 11 Javascript
JavaScript数组复制详解
Feb 02 Javascript
bootstrap suggest搜索建议插件使用详解
Mar 25 Javascript
Angular 通过注入 $location 获取与修改当前页面URL的实例
May 31 Javascript
Vue.js常用指令之循环使用v-for指令教程
Jun 27 Javascript
jquery easyui如何实现格式化列
Jul 30 jQuery
详解Vue组件实现tips的总结
Nov 01 Javascript
JavaScript数据结构与算法之检索算法示例【二分查找法、计算重复次数】
Feb 22 Javascript
最丑的时钟效果!js canvas时钟制作方法
Aug 15 #Javascript
深入分析javascript中console命令
Aug 14 #Javascript
Vue.js 表单校验插件
Aug 14 #Javascript
Vue.js学习笔记之 helloworld
Aug 14 #Javascript
详解Node.js如何开发命令行工具
Aug 14 #Javascript
javascript中的 object 和 function小结
Aug 14 #Javascript
JavaScript兼容浏览器FF/IE技巧
Aug 14 #Javascript
You might like
php的正则处理函数总结分析
2008/06/20 PHP
PHP判断上传文件类型的解决办法
2015/10/20 PHP
php三种实现多线程类似的方法
2015/10/30 PHP
THINKPHP5分页数据对象处理过程解析
2020/10/28 PHP
javascript实现的动态文字变换
2007/07/28 Javascript
javascript 动态生成私有变量访问器
2009/12/06 Javascript
treepanel动态加载数据实现代码
2012/12/15 Javascript
一个非常全面的javascript URL解析函数和分段URL解析方法
2014/04/12 Javascript
javascript的alert box在java中如何显示多行
2014/05/18 Javascript
nodejs事件的监听与触发的理解分析
2015/02/12 NodeJs
Angularjs单选改为多选的开发过程及问题解析
2017/02/17 Javascript
解决nodejs中使用http请求返回值为html时乱码的问题
2017/02/18 NodeJs
easyUI下拉列表点击事件使用方法
2017/05/18 Javascript
浅谈es6中export和export default的作用及区别
2018/02/07 Javascript
Vue 使用中的小技巧
2018/04/26 Javascript
JS使用百度地图API自动获取地址和经纬度操作示例
2019/04/16 Javascript
浅谈layui 数据表格前后台传值的问题
2019/09/12 Javascript
[01:53]DOTA2超级联赛专访Zhou 五年职业青春成长
2013/05/29 DOTA
[01:03]悬念揭晓 11月26日DOTA2完美盛典不见不散
2017/11/23 DOTA
Python的一些用法分享
2012/10/07 Python
Python中的二叉树查找算法模块使用指南
2014/07/04 Python
python调用系统ffmpeg实现视频截图、http发送
2018/03/06 Python
由Python编写的MySQL管理工具代码实例
2019/04/09 Python
python urllib爬虫模块使用解析
2019/09/05 Python
Python操作Word批量生成合同的实现示例
2020/08/28 Python
英国护发和美妆在线商店:Klip Shop
2019/03/24 全球购物
链表面试题-一个链表的结点结构
2015/05/04 面试题
自学考试自我鉴定范文
2013/09/26 职场文书
四查四看自我剖析材料
2014/09/19 职场文书
2014年学生工作总结
2014/11/20 职场文书
2015毕业生实习工作总结
2014/12/12 职场文书
2015秋学期开学寄语
2015/05/28 职场文书
小学生暑假安全保证书
2015/07/13 职场文书
如何写好闭幕词
2019/04/02 职场文书
Vue实现动态查询规则生成组件
2021/05/27 Vue.js
Pyhton爬虫知识之正则表达式详解
2022/04/01 Python