又一款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 相关文章推荐
javascript 函数调用的对象和方法
Jul 01 Javascript
jQuery实现动画效果的简单实例
Jan 27 Javascript
JavaScript中常见获取元素的方法汇总
Mar 04 Javascript
nw.js实现类似微信的聊天软件
Mar 16 Javascript
javascript实现简单的鼠标拖动效果实例
Apr 10 Javascript
js实现仿阿里巴巴城市选择框效果实例
Jun 24 Javascript
关于JS中的apply,call,bind的深入解析
Apr 05 Javascript
深入理解JS中的Function.prototype.bind()方法
Oct 11 Javascript
React中常见的动画实现的几种方式
Jan 10 Javascript
element-ui表格合并span-method的实现方法
May 21 Javascript
vue2 中二级路由高亮问题及配置方法
Jun 10 Javascript
js表达式与运算符简单操作示例
Feb 15 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使用mkdir创建多级目录入门例子
2014/05/10 PHP
PHP实现求解最长公共子串问题的方法
2017/11/17 PHP
PHP连接MySQL数据库操作代码实例解析
2020/07/11 PHP
javascript textarea光标定位方法(兼容IE和FF)
2011/03/12 Javascript
EditPlus注册码生成器(js代码实现)
2013/03/25 Javascript
ExtJs默认的字体大小改变的几种方法(自己整理)
2013/04/18 Javascript
javascript(js)的小数点乘法除法问题详解
2014/03/07 Javascript
javascript实现复制与粘贴操作实例
2014/10/16 Javascript
javascript数组遍历for与for in区别详解
2014/12/04 Javascript
node.js中的http.response.removeHeader方法使用说明
2014/12/14 Javascript
学习javascript面向对象 实例讲解面向对象选项卡
2016/01/04 Javascript
前端设计师们最常用的JS代码汇总
2016/09/25 Javascript
Map.vue基于百度地图组件重构笔记分享
2017/04/17 Javascript
JavaScript运动框架 解决速度正负取整问题(一)
2017/05/17 Javascript
详解create-react-app 2.0版本如何启用装饰器语法
2018/10/23 Javascript
JS基于对象的链表实现与使用方法示例
2019/01/31 Javascript
vue项目中在外部js文件中直接调用vue实例的方法比如说this
2019/04/28 Javascript
js设计模式之代理模式及订阅发布模式实例详解
2019/08/15 Javascript
javascript的惯性运动实现代码实例
2019/09/07 Javascript
详解Python各大聊天系统的屏蔽脏话功能原理
2016/12/01 Python
python使用tkinter实现简单计算器
2018/01/30 Python
Python实现EXCEL表格的排序功能示例
2019/06/25 Python
解决pycharm remote deployment 配置的问题
2019/06/27 Python
Python PyCharm如何进行断点调试
2019/07/05 Python
tensorflow没有output结点,存储成pb文件的例子
2020/01/04 Python
html5 拖拽上传图片实例演示
2013/04/01 HTML / CSS
Boden澳大利亚官网:英国在线服装公司
2018/08/05 全球购物
探矿工程师自荐信
2014/01/24 职场文书
2014年十一国庆向国旗敬礼寄语
2014/04/11 职场文书
创业培训计划书
2014/05/03 职场文书
个人股份合作协议书
2014/10/24 职场文书
2014年检验科工作总结
2014/11/22 职场文书
担保公司2015年终工作总结
2015/10/14 职场文书
建筑工程挂靠协议书
2016/03/23 职场文书
同学聚会开幕词
2019/04/02 职场文书
python如何利用cv2模块读取显示保存图片
2021/06/04 Python