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 相关文章推荐
javascript之AJAX框架使用说明
Apr 24 Javascript
jquery乱码与contentType属性设置问题解决方案
Jan 07 Javascript
Ajax同步与异步传输的示例代码
Nov 21 Javascript
jquery实现鼠标滑过显示二级下拉菜单效果
Aug 24 Javascript
js 获取站点应用名的简单实例
Aug 18 Javascript
KnockoutJS 3.X API 第四章之表单submit、enable、disable绑定
Oct 10 Javascript
jQuery插件WebUploader实现文件上传
Nov 07 Javascript
js实现百度地图定位于地址逆解析,显示自己当前的地理位置
Dec 08 Javascript
使用requirejs模块化开发多页面一个入口js的使用方式
Jun 14 Javascript
JavaScript使用atan2来绘制箭头和曲线的实例
Sep 14 Javascript
vue中对象数组去重的实现
Feb 06 Javascript
微信小程序保持session会话的方法
Mar 20 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
php使用cookie显示用户上次访问网站日期的方法
2015/01/26 PHP
php页面,mysql数据库转utf-8乱码,utf-8编码问题总结
2015/08/27 PHP
关于Yii中模型场景的一些简单介绍
2019/09/22 PHP
CSS常用网站布局实例
2008/04/03 Javascript
Javascript Ajax异步读取RSS文档具体实现
2013/12/12 Javascript
解析JavaScript的ES6版本中的解构赋值
2015/07/28 Javascript
《JavaScript高级编程》学习笔记之object和array引用类型
2015/11/01 Javascript
JavaScript事件处理的方式(三种)
2016/04/26 Javascript
jQuery模仿阿里云购买服务器选择购买时间长度的代码
2016/04/29 Javascript
基于jQuery实现仿百度首页选项卡切换效果
2016/05/29 Javascript
JS实现动态修改table及合并单元格的方法示例
2017/02/20 Javascript
jquery拼接ajax 的json和字符串拼接的方法
2017/03/11 Javascript
js实现城市级联菜单的2种方法
2017/06/23 Javascript
利用JQUERY实现多个AJAX请求等待的实例
2017/12/14 jQuery
详解React Native 屏幕适配(炒鸡简单的方法)
2018/06/11 Javascript
vue debug 二种方法
2018/09/16 Javascript
QRCode.js二维码生成并能长按识别
2018/10/16 Javascript
React性能优化系列之减少props改变的实现方法
2019/01/17 Javascript
vue项目中仿element-ui弹框效果的实例代码
2019/04/22 Javascript
使用Webpack提升Vue.js应用程序的4种方法(翻译)
2019/10/09 Javascript
如何封装Vue Element的table表格组件
2021/02/06 Vue.js
[01:29]Ti4循环赛第三日精彩回顾
2014/07/13 DOTA
Python 异常处理的实例详解
2017/09/11 Python
python学习——内置函数、数据结构、标准库的技巧(推荐)
2019/04/18 Python
利用python将图片版PDF转文字版PDF
2019/05/03 Python
python解析命令行参数的三种方法详解
2019/11/29 Python
Python的pygame安装教程详解
2020/02/10 Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
2020/04/10 Python
海蓝之谜英国官网:La Mer英国
2020/01/15 全球购物
简述进程的启动、终止的方式以及如何进行进程的查看
2014/02/20 面试题
中间件分为哪几类
2012/03/14 面试题
宿舍卫生检讨书
2014/01/16 职场文书
英语自我介绍演讲稿
2014/09/01 职场文书
普通话演讲稿
2014/09/03 职场文书
幼儿园父亲节活动总结
2015/02/12 职场文书
2016年端午节校园广播稿
2015/12/18 职场文书