又一款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 相关文章推荐
Windows Live的@live.com域名注册漏洞 利用代码
Dec 27 Javascript
JavaScript 继承详解(四)
Jul 13 Javascript
js实现跟随鼠标移动且带关闭功能的图片广告实例
Feb 26 Javascript
js中遍历Map对象的方法
Jul 27 Javascript
Bootstrap CSS布局之按钮
Dec 17 Javascript
Vue.js系列之vue-router(上)(3)
Jan 03 Javascript
JS点击图片弹出文件选择框并覆盖原图功能的实现代码
Aug 25 Javascript
浅谈es6中export和export default的作用及区别
Feb 07 Javascript
JS实现图片转换成base64的各种应用场景实例分析
Jun 22 Javascript
vue-rx的初步使用教程
Sep 21 Javascript
vue使用video.js进行视频播放功能
Jul 18 Javascript
Vue实现导航栏的显示开关控制
Nov 01 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配置之database.php用法实例分析
2016/01/20 PHP
TP5框架安全机制实例分析
2020/04/05 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
2020/05/02 PHP
通过PHP实现获取访问用户IP
2020/05/09 PHP
javascript hasFocus使用实例
2010/06/29 Javascript
ejs v9 javascript模板系统
2012/03/21 Javascript
javascript模拟实现ajax加载框实例
2014/10/15 Javascript
Lua表达式和控制结构学习笔记
2014/12/15 Javascript
JavaScript中指定函数名称的相关方法
2015/06/04 Javascript
解决JS请求服务器gbk文件乱码的问题
2015/10/16 Javascript
微信小程序 Button 组件详解及简单实例
2017/01/10 Javascript
nodejs中全局变量的实例解析
2017/03/07 NodeJs
Webpack实现按需打包Lodash的几种方法详解
2017/05/08 Javascript
详解webpack和webpack-simple中如何引入css文件
2017/06/28 Javascript
详解vue 单页应用(spa)前端路由实现原理
2018/04/04 Javascript
Vue 实现把表单form数据 转化成json格式的数据
2019/10/29 Javascript
解决vue初始化项目时,一直卡在Project description上的问题
2019/10/31 Javascript
JS document form表单元素操作完整示例
2020/01/13 Javascript
JSONP 的原理、理解 与 实例分析
2020/05/16 Javascript
python机器学习之神经网络(三)
2017/12/20 Python
解决python中用matplotlib画多幅图时出现图形部分重叠的问题
2019/07/07 Python
python retrying模块的使用方法详解
2019/09/25 Python
python报错: 'list' object has no attribute 'shape'的解决
2020/07/15 Python
Python 如何定义匿名或内联函数
2020/08/01 Python
sort命令的作用和用法
2012/11/04 面试题
法律专业学生的自我评价
2014/02/07 职场文书
人事专员的职责
2014/02/26 职场文书
成绩单公证书
2014/04/10 职场文书
汽车维修专业自荐书
2014/05/26 职场文书
防灾减灾标语
2014/10/07 职场文书
文明旅游倡议书
2015/04/28 职场文书
环保宣传语大全
2015/07/13 职场文书
2019学校运动会开幕词
2019/05/13 职场文书
《飘》英文读后感五篇
2019/10/11 职场文书
MySQL中出现乱码问题的终极解决宝典
2021/05/26 MySQL
python超详细实现完整学生成绩管理系统
2022/03/17 Python