又一款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 相关文章推荐
IE DOM实现存在的部分问题及解决方法
Jul 25 Javascript
dojo学习第二天 ajax异步请求之绑定列表
Aug 29 Javascript
Javascript模块化编程(一)AMD规范(规范使用模块)
Jan 17 Javascript
JQuery each打印JS对象的方法
Nov 13 Javascript
浅谈js原生拖放
Nov 21 Javascript
解析js如何获取css样式
Dec 11 Javascript
详解vue表单验证组件 v-verify-plugin
Apr 19 Javascript
解决vue 按钮多次点击重复提交数据问题
May 10 Javascript
利用Webpack实现小程序多项目管理的方法
Feb 25 Javascript
Vue注册组件命名时不能用大写的原因浅析
Apr 25 Javascript
Angular value与ngValue区别详解
Nov 27 Javascript
基于JavaScript实现十五拼图代码实例
Apr 26 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批量删除数据库下指定前缀的表以prefix_为例
2014/08/24 PHP
详解php中serialize()和unserialize()函数
2017/07/08 PHP
jquery实现marquee效果(文字或者图片的水平垂直滚动)
2013/01/07 Javascript
jquery获取元素值的方法(常见的表单元素)
2013/11/15 Javascript
javascript Deferred和递归次数限制实例
2014/10/21 Javascript
js实现时间显示几天前、几小时前或者几分钟前的方法集锦
2015/05/29 Javascript
JavaScript对HTML DOM使用EventListener进行操作
2015/10/21 Javascript
js中的DOM模拟购物车功能
2017/03/22 Javascript
原生JS与jQuery编写简单选项卡
2017/10/30 jQuery
vue中mint-ui的使用方法
2018/04/04 Javascript
Vue表单及表单绑定方法
2018/09/04 Javascript
JS开发常用工具函数(小结)
2019/07/04 Javascript
小程序中使用css var变量(使js可以动态设置css样式属性)
2020/03/31 Javascript
[01:51]DAC趣味视频-如何成为职业选手.mp4
2017/04/02 DOTA
[34:44]Liquid vs TNC Supermajor 胜者组 BO3 第二场 6.4
2018/06/05 DOTA
ubuntu中配置pyqt4环境教程
2017/12/27 Python
python实现一个简单的ping工具方法
2019/01/31 Python
搞定这套Python爬虫面试题(面试会so easy)
2019/04/03 Python
python使用 request 发送表单数据操作示例
2019/09/25 Python
python 使用建议与技巧分享(四)
2020/08/18 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
用CSS3和table标签实现一个圆形轨迹的动画的示例代码
2019/01/17 HTML / CSS
家得宝加拿大家装网上商店:The Home Depot加拿大
2016/08/27 全球购物
三星俄罗斯授权在线商店:Samsung俄罗斯
2019/09/28 全球购物
Linux面试题LINUX系统类
2014/11/19 面试题
简历里的自我评价范文
2014/02/24 职场文书
教育技术学专业职业规划书
2014/03/03 职场文书
数控专业毕业生求职信
2014/06/12 职场文书
医生爱岗敬业演讲稿
2014/08/26 职场文书
党员对照检查材料思想汇报(党的群众路线)
2014/09/24 职场文书
2015年度党风廉政建设工作情况汇报
2015/01/02 职场文书
研究生论文答辩开场白
2015/05/27 职场文书
小人国观后感
2015/06/11 职场文书
2016大学生暑期社会实践心得体会
2016/01/14 职场文书
《日月潭》教学反思
2016/02/20 职场文书
Node.js实现爬取网站图片的示例代码
2022/04/04 NodeJs