又一款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判断变量是否空值的代码
Oct 26 Javascript
jquery tab插件制作实现代码
Jun 22 Javascript
JavaScript起点(严格模式深度了解)
Jan 28 Javascript
JS实现倒计时和文字滚动的效果实例
Oct 29 Javascript
基于Vue.js实现数字拼图游戏
Aug 02 Javascript
创建一般js对象的几种方式
Jan 19 Javascript
Angular4表单验证代码详解
Sep 03 Javascript
vue 实现通过手机发送短信验证码注册功能
Apr 19 Javascript
vue项目中跳转到外部链接的实例讲解
Sep 20 Javascript
angular 未登录状态拦截路由跳转的方法
Oct 09 Javascript
Vue2.x通用条件搜索组件的封装及应用详解
May 28 Javascript
详解微信小程序开发之formId使用(模板消息)
Aug 27 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
laravel如何开启跨域功能示例详解
2017/08/31 PHP
PHP中$GLOBALS与global的区别详解
2019/03/21 PHP
PHP超低内存遍历目录文件和读取超大文件的方法
2019/05/01 PHP
jquery中ajax学习笔记3
2011/10/16 Javascript
js+xml生成级联下拉框代码
2012/07/24 Javascript
jQuery点击tr实现checkbox选中的方法
2013/03/19 Javascript
鼠标移入移出事件改变图片的分辨率的两种方法
2013/12/17 Javascript
Javascript遍历Html Table示例(包括内容和属性值)
2014/07/08 Javascript
基于jQuery的图片不完全按比例自动缩小
2014/07/11 Javascript
JavaScript实现的伸展收缩型菜单代码
2015/10/14 Javascript
详解基于Bootstrap扁平化的后台框架Ace
2015/11/27 Javascript
JavaScript setTimeout使用闭包功能实现定时打印数值
2015/12/18 Javascript
Vue form 表单提交+ajax异步请求+分页效果
2017/04/22 Javascript
JavaScript之浏览器对象_动力节点Java学院整理
2017/07/03 Javascript
微信小程序使用image组件显示图片的方法【附源码下载】
2017/12/08 Javascript
AngularJS基于http请求实现下载php生成的excel文件功能示例
2018/01/23 Javascript
详解Vue开发微信H5微信分享签名失败问题解决方案
2018/08/09 Javascript
微信小程序webview实现长按点击识别二维码功能示例
2019/01/24 Javascript
使用React手写一个对话框或模态框的方法示例
2019/04/25 Javascript
JS实现动态添加外部js、css到head标签的方法
2019/06/05 Javascript
no-vnc和node.js实现web远程桌面的完整步骤
2019/08/11 Javascript
JS实现星星海特效
2019/12/24 Javascript
js实现单元格拖拽效果
2020/02/10 Javascript
[42:48]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第二场 12.11
2020/12/16 DOTA
Python中的匿名函数使用简介
2015/04/27 Python
Django框架中处理URLconf中特定的URL的方法
2015/07/20 Python
Python中工作日类库Busines Holiday的介绍与使用
2017/07/06 Python
Python一行代码实现快速排序的方法
2019/04/30 Python
python 利用turtle模块画出没有角的方格
2019/11/23 Python
python使用re模块爬取豆瓣Top250电影
2020/10/20 Python
时装界的“朋克之母”:Vivienne Westwood
2017/07/06 全球购物
澳大利亚窗帘商店:Curtain Wonderland
2019/12/01 全球购物
捐款倡议书范文
2014/02/02 职场文书
高中历史教学反思
2014/02/08 职场文书
电子工程求职信
2014/07/17 职场文书
创业计划书之酒厂
2019/10/14 职场文书