又一款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 14 Javascript
JavaScript获取表单enctype属性的方法
Apr 02 Javascript
JavaScript中setUTCMilliseconds()方法的使用详解
Jun 12 Javascript
浏览器检测JS代码(兼容目前各大主流浏览器)
Feb 21 Javascript
CSS+jQuery实现简单的折叠菜单
Dec 20 Javascript
VUE前端cookie简单操作
Oct 17 Javascript
jQuery简单实现对数组去重及排序操作实例
Oct 31 jQuery
JavaScript继承定义与用法实践分析
May 28 Javascript
vue实现的双向数据绑定操作示例
Dec 04 Javascript
vue2 v-model/v-text 中使用过滤器的方法示例
May 09 Javascript
Vee-validate 父组件获取子组件表单校验结果的实例代码
May 20 Javascript
Node.js+ELK日志规范的实现
May 23 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
ThinkPHP写第一个模块应用
2012/02/20 PHP
浅析PHP的静态成员函数效率更高的原因
2014/06/13 PHP
php curl 获取https请求的2种方法
2015/04/27 PHP
Symfony模板的快捷变量用法实例
2016/03/17 PHP
Joomla实现组件中弹出一个模式(modal)窗口的方法
2016/05/04 PHP
CodeIgniter框架验证码类库文件与用法示例
2017/03/18 PHP
用JS剩余字数计算的代码
2008/07/03 Javascript
EXT窗口Window及对话框MessageBox
2011/01/27 Javascript
JS实现侧悬浮浮动实例代码
2013/11/29 Javascript
JavaScript对象之深度克隆介绍
2014/12/08 Javascript
微信小程序 教程之引用
2016/10/18 Javascript
深入理解vue路由的使用
2017/03/24 Javascript
jQuery dateRangePicker插件使用方法详解
2017/07/28 jQuery
Angular表格神器ui-grid应用详解
2017/09/29 Javascript
解决在vue项目中,发版之后,背景图片报错,路径不对的问题
2018/03/06 Javascript
vue element-ui 绑定@keyup事件无效的解决方法
2018/03/09 Javascript
vue-cli 脚手架基于Nightwatch的端到端测试环境的过程
2018/09/30 Javascript
js中apply和call的理解与使用方法
2019/11/27 Javascript
React 条件渲染最佳实践小结(7种)
2020/09/27 Javascript
解决vscode进行vue格式化,会自动补分号和双引号的问题
2020/10/26 Javascript
[05:11]TI9战队采访——VIRTUSPRO
2019/08/22 DOTA
python列表操作使用示例分享
2014/02/21 Python
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
2018/07/09 Python
Python基于scipy实现信号滤波功能
2019/05/08 Python
在django admin中添加自定义视图的例子
2019/07/26 Python
Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签
2019/12/04 Python
TensorFlow实现从txt文件读取数据
2020/02/05 Python
Python使用Selenium实现淘宝抢单的流程分析
2020/06/23 Python
django中cookiecutter的使用教程
2020/12/03 Python
python自动生成证件号的方法示例
2021/01/14 Python
3D动画《斗罗大陆》上线当日播放过亿
2021/03/16 国漫
HTML5 CSS3新的WEB标准和浏览器支持
2009/07/16 HTML / CSS
以实惠的价格提供高品质的时尚:Newchic
2018/01/18 全球购物
意大利简约的休闲品牌:Aspesi
2018/02/08 全球购物
班委竞选稿范文
2015/11/21 职场文书
Python保存并浏览用户的历史记录
2022/04/29 Python