又一款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 相关文章推荐
JS实多级联动下拉菜单类,简单实现省市区联动菜单!
May 03 Javascript
jQuery图片轮播的具体实现
Sep 11 Javascript
JavaScript获得当前网页来源页面(即上一页)的方法
Apr 03 Javascript
JS实现滑动菜单效果代码(包括Tab,选项卡,横向等效果)
Sep 24 Javascript
javascript十六进制数字和ASCII字符之间的转换方法
Dec 27 Javascript
Webpack打包字体font-awesome的方法示例
Apr 26 Javascript
CryptoJS中AES实现前后端通用加解密技术
Dec 18 Javascript
JS+php后台实现文件上传功能详解
Mar 02 Javascript
Android 自定义view仿微信相机单击拍照长按录视频按钮
Jul 19 Javascript
JavaScript类的继承多种实现方法
May 30 Javascript
基于Element封装一个表格组件tableList的使用方法
Jun 29 Javascript
javascript实现拼图游戏
Jan 29 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
Codeigniter中禁止A Database Error Occurred错误提示的方法
2014/06/12 PHP
PHP写日志的实现方法
2014/11/05 PHP
php数组查找函数总结
2014/11/18 PHP
php+mysql删除指定编号员工信息的方法
2015/01/14 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
sina的lightbox效果。
2007/01/09 Javascript
jquery 的 $(&quot;#id&quot;).html() 无内容的解决方法
2010/06/07 Javascript
Javascript 中 null、NaN和undefined的区别总结
2013/04/10 Javascript
基于JavaScript 类的使用详解
2013/05/07 Javascript
JavaScript实现按照指定长度为数字前面补零输出的方法
2015/03/19 Javascript
Javascript动态创建表格及删除行列的方法
2015/05/15 Javascript
jQuery基于ID调用指定iframe页面内的方法
2016/07/06 Javascript
js利用appendChild对标签进行排序的实现方法
2016/10/16 Javascript
jQuery插件ajaxFileUpload使用详解
2017/01/10 Javascript
thinkphp标签实现bootsrtap轮播carousel实例代码
2017/02/19 Javascript
bootstrap table实现双击可编辑、添加、删除行功能
2017/09/27 Javascript
nodejs acl的用户权限管理详解
2018/03/14 NodeJs
Vue项目中跨域问题解决方案
2018/06/05 Javascript
vue移动端实现红包雨效果
2020/06/23 Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
2018/08/28 Javascript
vue.js中使用echarts实现数据动态刷新功能
2019/04/16 Javascript
基于redis的小程序登录实现方法流程分析
2020/05/25 Javascript
[02:54]DOTA2亚洲邀请赛 VG战队出场宣传片
2015/02/07 DOTA
闭包在python中的应用之translate和maketrans用法详解
2014/08/27 Python
操作Windows注册表的简单的Python程序制作教程
2015/04/07 Python
Pythont特殊语法filter,map,reduce,apply使用方法
2016/02/27 Python
Collatz 序列、逗号代码、字符图网格实例
2017/06/22 Python
python 提取文件指定列的方法示例
2019/08/07 Python
英国假睫毛购买网站:FalseEyelashes.co.uk
2018/05/23 全球购物
澳洲本土太阳镜品牌:Quay Australia
2019/07/29 全球购物
递归计算如下递归函数的值(斐波拉契)
2012/02/04 面试题
元旦联欢会策划方案
2014/06/11 职场文书
企业挂职心得体会
2014/09/10 职场文书
团组织推荐意见
2015/06/05 职场文书
常住证明范本
2015/06/23 职场文书
微信小程序实现轮播图指示器
2022/06/25 Javascript