js数字滑动时钟的简单实现(示例讲解)


Posted in Javascript onAugust 14, 2017

废话不多说,直接上代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style type="text/css">
    body,ul{margin:0;padding: 0;}
    .content{margin:100px auto;width: 1000px;}
    .box{position: relative;float: left;width: 50px;height: 120px;overflow: hidden;}
    .box li{position: absolute;left: 0;width:100%;height: 120px;list-style:none;font-size:80px;font-weight: bold;background-color: #fff; line-height: 120px; text-align: center;}
    .colon{float: left;height: 120px;font-size: 80px;color: #e91e63;font-weight: bold;line-height: 100px;}
  </style>
</head>
<body>
  <div class="content">
  </div>
  <script type="text/javascript">
  (function(){
    var colors = ["#69D2E7", "#E20049", "#19215E", "#F38630", "#FA6900", "#FF4E50", "#F9D423", "#FFB6FF", "#474168", "#6ACAFC"];
    var content = document.querySelector('.content');
    var num = 0;
    var height = 120;
    var maxheight = (2-num)*height;
    var timeNum = [3,10,6,10,6,10];
    var position = [];
    var NumberBoxs = [];
    for(var i =0;i<10;i++){
      position.push((1-i)*height);
    };
    function NumberBox() {}
    NumberBox.prototype = {
      init : function () {
        var innerHTML = "<div class='box' id='box"+num+"'><ul>"
        this.num = num;
        num++;
        for(var i =0,l=timeNum[this.num];i<l;i++){
          innerHTML += "<li style='color:"+colors[i]+"'>"+i+"</li>";
        }
        innerHTML += "</ul><div>"
        content.innerHTML += innerHTML;
        if(num==2||num==4){content.innerHTML += "<div class='colon'>:</div>"}
      },
      dominit : function(){
        this.Ali = [].slice.call(document.getElementById('box'+this.num).getElementsByTagName('li'),0);    
        this.Ali.forEach(function(dom,i){
          dom.style.top = position[i] + "px";
          dom.style.transition = "top .8s";
        })  
        this.hasdom = true;  
      },
      toNum : function (n) {
        if(!this.hasdom){this.dominit();}
        n = ""+n;
        var p = this;
        var l = p.Ali.length-1;
        while(p.Ali[1].innerHTML!=n){
        p.Ali.unshift(p.Ali.pop());
        }
        p.Ali.forEach(function (dom,i) {
        dom.style.zIndex = (i==l)?"-1":"1";
        dom.style.top = position[i] + "px";
        })     
      }
    }
    for(var i=0;i<6;i++){
      var o = new NumberBox();
      o.init();
      NumberBoxs.push(o);
    }
    function getTime() {
      var time = new Date();
      return (""+Fixed2(time.getHours())+Fixed2(time.getMinutes())+Fixed2(time.getSeconds())).split("");
    }
    function Fixed2(n){
      return Number(n)<10?"0"+n:n;
    }
    (function () {
      var time = getTime();
      NumberBoxs.forEach(function(obj,i){
        obj.toNum(time[i]);
      });
      setTimeout(arguments.callee,1000);
    })()
  })();
  </script>
</body>
</html>

以上这篇js数字滑动时钟的简单实现(示例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js取滚动条的尺寸的函数代码
Nov 30 Javascript
使用jQuery重置(reset)表单的方法
May 05 Javascript
js鼠标悬浮出现遮罩层的方法
Jan 28 Javascript
基于jquery实现可定制的web在线富文本编辑器附源码下载
Nov 17 Javascript
jQuery position() 函数详解以及jQuery中position函数的应用
Dec 14 Javascript
JS中闭包的经典用法小结(2则示例)
Dec 28 Javascript
详解Vue中一种简易路由传参办法
Sep 15 Javascript
微信小程序HTTP请求从0到1封装
Sep 09 Javascript
教你如何用Node实现API的转发(某音乐)
Sep 20 Javascript
Echarts地图添加引导线效果(labelLine)
Sep 30 Javascript
jQuery操作元素的内容和样式完整实例分析
Jan 10 jQuery
vue设置默认首页的操作
Aug 12 Javascript
使用yeoman构建angular应用的方法
Aug 14 #Javascript
AngularJS 购物车全选/取消全选功能的实现方法
Aug 14 #Javascript
使用D3.js制作图表详解
Aug 13 #Javascript
Vue-Cli中自定义过滤器的实现代码
Aug 12 #Javascript
react开发教程之React 组件之间的通信方式
Aug 12 #Javascript
vuejs+element-ui+laravel5.4上传文件的示例代码
Aug 12 #Javascript
浅谈关于angularJs中使用$.ajax的注意点
Aug 12 #Javascript
You might like
终于听上了直流胆调频
2021/03/02 无线电
ThinkPHP的L方法使用简介
2014/06/18 PHP
Windows下的PHP安装pear教程
2014/10/24 PHP
php判断当前操作系统类型
2015/10/28 PHP
PHP获取文件扩展名的方法实例总结
2017/06/10 PHP
PHP实现微信提现功能
2018/09/30 PHP
jQuery如何实现点击页面获得当前点击元素的id或其他信息
2014/01/09 Javascript
jQuery使用andSelf()来包含之前的选择集
2014/05/19 Javascript
利用Bootstrap实现表格复选框checkbox全选
2016/12/21 Javascript
Vue组件的使用教程详解
2018/01/05 Javascript
基于JavaScript实现瀑布流布局
2018/08/15 Javascript
关于单文件组件.vue的使用
2018/09/20 Javascript
jQuery实现的简单歌词滚动功能示例
2019/01/07 jQuery
使用异步组件优化Vue应用程序的性能
2019/04/28 Javascript
jQuery内容选择器与表单选择器实例分析
2019/06/28 jQuery
优化Vue中date format的性能详解
2020/01/13 Javascript
vant picker+popup 自定义三级联动案例
2020/11/04 Javascript
Python打印输出数组中全部元素
2018/03/13 Python
简单了解python代码优化小技巧
2019/07/08 Python
如何用OpenCV -python3实现视频物体追踪
2019/12/04 Python
Python如何在DataFrame增加数值
2020/02/14 Python
django实现日志按日期分割
2020/05/21 Python
Python Tkinter图形工具使用方法及实例解析
2020/06/15 Python
浅析Python 抽象工厂模式的优缺点
2020/07/13 Python
求职信写作要突出重点
2014/01/01 职场文书
五一家具促销方案
2014/01/10 职场文书
年会搞笑主持词串词
2014/03/24 职场文书
住宅质量保证书
2014/04/29 职场文书
分公司负责人任命书
2014/06/04 职场文书
公司演讲稿开场白
2014/08/25 职场文书
医院护士见习期自我鉴定
2014/09/15 职场文书
行政人事主管岗位职责
2015/04/11 职场文书
2016年元旦主持词
2015/07/06 职场文书
2015年工会工作总结范文
2015/07/23 职场文书
推普标语口号大全
2015/12/26 职场文书
公司年会晚会开幕词
2019/04/02 职场文书