又一款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 变量基础知识
Nov 07 Javascript
不同浏览器对回车提交表单的处理办法
Feb 13 Javascript
获取服务器传来的数据 用JS去空格的正则表达式
Mar 26 Javascript
优化Node.js Web应用运行速度的10个技巧
Sep 03 Javascript
贴近用户体验的Jquery日期、时间选择插件
Aug 19 Javascript
概述VUE2.0不可忽视的很多变化
Sep 25 Javascript
详解js中Number()、parseInt()和parseFloat()的区别
Dec 20 Javascript
浅谈vue中.vue文件解析流程
Apr 24 Javascript
js实现动态添加上传文件页面
Oct 22 Javascript
angularjs实现table表格td单元格单击变输入框/可编辑状态示例
Feb 21 Javascript
javascript实现贪吃蛇经典游戏
Apr 10 Javascript
Vue中Object.assign清空数据报错的解决方案
Mar 03 Vue.js
最丑的时钟效果!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编程最快明白》第八讲:php启发和小结
2010/11/01 PHP
PHP限制页面只能在微信自带浏览器访问的代码
2014/01/15 PHP
Yii2.0表关联查询实例分析
2016/07/18 PHP
php头像上传预览实例代码
2017/05/02 PHP
用JavaScript实现仿Windows关机效果
2007/03/10 Javascript
IE8 浏览器Cookie的处理
2009/01/31 Javascript
javascript 函数调用规则
2009/08/26 Javascript
jquery实现的可隐藏重现的靠边悬浮层实例代码
2013/05/27 Javascript
Extjs4实现两个GridPanel之间数据拖拽功能具体方法
2013/11/21 Javascript
jQuery 判断是否包含在数组中Array[]的方法
2016/08/03 Javascript
js判断checkbox是否选中个数的方法(超简单)
2016/08/19 Javascript
bootstrap Table服务端处理分页(后台是.net)
2017/10/19 Javascript
vue计算属性时v-for处理数组时遇到的一个bug问题
2018/01/21 Javascript
angular6根据environments配置文件更改开发所需要的环境的方法
2019/03/06 Javascript
微信小程序在ios下Echarts图表不能滑动的问题解决
2019/07/10 Javascript
jQuery+ajax实现文件上传功能
2020/12/22 jQuery
[44:22]完美世界DOTA2联赛循环赛 FTD vs PXG BO2第一场 11.01
2020/11/02 DOTA
Python中的两个内置模块介绍
2015/04/05 Python
python简单分割文件的方法
2015/07/30 Python
Python实现的查询mysql数据库并通过邮件发送信息功能
2018/05/17 Python
tensorflow 打印内存中的变量方法
2018/07/30 Python
Python 微信之获取好友昵称并制作wordcloud的实例
2019/02/21 Python
python 获取等间隔的数组实例
2019/07/04 Python
pygame库实现移动底座弹球小游戏
2020/04/14 Python
flask框架json数据的拿取和返回操作示例
2019/11/28 Python
python读取当前目录下的CSV文件数据
2020/03/11 Python
python实现扑克牌交互式界面发牌程序
2020/04/22 Python
Python中常见的数制转换有哪些
2020/05/27 Python
python 牛顿法实现逻辑回归(Logistic Regression)
2020/10/15 Python
HTML5中使用json对象的实例代码
2018/09/10 HTML / CSS
2015年度护士个人工作总结
2015/04/09 职场文书
降价通知函
2015/04/23 职场文书
中国汉字听写大会观后感
2015/06/02 职场文书
小学生一年级(书信作文)
2019/08/13 职场文书
python读取pdf格式文档的实现代码
2021/04/01 Python
mysql 带多个条件的查询方式
2021/06/05 MySQL