js动态数字时钟

主要用到知识点:

  • 主要是通过数组的一些方法,如:Array.from() Array.reduce() Array.find()
  • 时间的处理和渲染
  • js用到面向对象的写法

实现的功能

  • 炫酷的数字时间效果
  • 直接看效果

html:

    <div class="wraper">
<div class="column">
<div class="item">0</div>
<div class="item">1</div>
<div class="item">2</div>
</div>
<div class="column ten"></div>
<div class="colon">:</div>
<div class="column six"></div>
<div class="column ten"></div>
<div class="colon">:</div>
<div class="column six"></div>
<div class="column ten"></div>
</div>

css:

    * {
margin: 0;
padding: 0;
}
html,
body {
width: 100%;
height: 100%;
background-color: #0e141b;
}
.wraper {
width: 100%;
height: 100%;
text-align: center;
overflow: hidden;
}
.column,
.colon {
display: inline-block;
vertical-align: top;
color: #fff;
font-size: 86px;
line-height: 86px;
font-weight: 300;
transform: translateY(50vh);
margin-top: -43px;
transition: all 0.3s;
}
.visible {
opacity: 1;
box-shadow: 0px 0px 20px #fff;
border-radius: 5px;
}
.near1 {
opacity: 0.7;
}
.near2 {
opacity: 0.6;
}
.near3 {
opacity: 0.4;
}
.far1 {
opacity: 0.3;
}
.far2 {
opacity: 0.2;
}
.far3 {
opacity: 0.1;
}
.none {
opacity: 0.05;
}

js:

    function Time(bom,use24){
this.Bom = Array.from(bom);
this.format = use24;
this.classList = ['visible', 'near1', 'near2','near3', 'far1', 'far2', 'far3'];
this.creatDom();
this.setTime();
}
//生成dom元素
Time.prototype.creatDom=function(){
for(let i=0;i<6;i++){
let odiv = "<div class='item'>"+i+"</div>";
$('.six').append(odiv);
}
for(let i=0;i<10;i++){
let idiv = "<div class='item'>" + i + "</div>";
$('.ten').append(idiv);
}
}
//设置当前时间到页面
Time.prototype.setTime = function(){
let self =this;
setInterval(function(){
let presentTime = self.getTime();
self.Bom.forEach((ele,index)=>{
var n = +presentTime[index];
var offset = n * 86;
$(ele).css({
marginTop:-43 - offset +'px'
})
Array.from(ele.children).forEach(function (ele1,index1){
$(ele1).attr('class', self.getClassName(n,index1));
})
})
},500)
}
Time.prototype.getClassName = function(n,i){
let className = this.classList.find(function(item,index){
return i - index === n || i + index === n;
})
// console.log(className)
return className || 'none';
}
//获取当前时间并处理
Time.prototype.getTime=function(){
let Data = new Date();
let timeArr =[];
let timeStr = '';
timeArr.push(this.format ? Data.getHours() : Data.getHours() % 12 || 12, Data.getMinutes(),Data.getSeconds());
timeStr = timeArr.reduce(function(p,n){
return p + ('0' + n).slice(-2);
},'');
return timeStr;
}
new Time($('.column'),true);

参考自:腾讯课堂渡一教育

js动态数字时钟的更多相关文章

  1. js实现动态数字时钟

    1.效果如下 2.html部分 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"&g ...

  2. js 动态时钟

    js 动态时钟 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...

  3. MUI 里js动态添加数字输入框后,增加、减少按钮无效

    numbox 的自动初化是在 mui.ready 时完成的mui 页面默认会自动初始化页面中的所有数字输入框,动态构造的 DOM 需要进行手动初始化.比如:您动态创建了一个 ID 为 abc 的数字输 ...

  4. JS — 实现简单的数字时钟

    js实现简单的数字时钟 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> & ...

  5. JS制作一个创意数字时钟

    通过js代码制作一个创意数字时钟 通过JS代码实现创意数字时钟效果如下:由数字化的卡通形象图片取代常规的数字显示当前实时北京时间.具体效果示例: 核心重点: (1)Date方法的初步了解 (2)构建模 ...

  6. JS框架_(Vue.js)带有星期日期的数字时钟

    百度云盘 传送门 密码:tv1v 数字时钟效果: <!doctype html> <html> <head> <meta charset="utf- ...

  7. html5 canvas js(数字时钟)

      <!doctype html> <html> <head> <title>canvas dClock</title> </head ...

  8. 通过Canvas + JS 实现简易时钟实战

    最近通过各种渠道学习了下html5中的canvas元素,为了练练手就随手写了一个简易的时钟.时钟本身不复杂,没有使用图片进行美化,下面就与大家分享一下具体的代码: 这是最终实现的效果: 部分的启发点来 ...

  9. 基于Verilog HDL 的数字时钟设计

    基于Verilog HDL的数字时钟设计 一.实验内容:     利用FPGA实现数字时钟设计,附带秒表功能及时间设置功能.时间设置由开关S1和S2控制,分别是增和减.开关S3是模式选择:0是正常时钟 ...

随机推荐

  1. .NET之IOC控制反转运用

    当前场景: 如果有不同的用户.使用同一个系统.而不同的客户有某些不同的需求.在不改变系统主体的情况下,可以直接使用IOC控制反转依赖搭建项目 1.添加接口层 目前里面只有一个会员的类.里面有一个登录接 ...

  2. arcEngine开发之activeView.PartialRefresh(译)

    为什么要使用partialRefresh arcMap应用程序窗口操作主要是由 IActiveView 控制的,并且它有 Map(data view) 和 PageLayout(layout view ...

  3. arcEngine开发之查询的相关接口

    属性查询 IQueryDef 首先这个接口不能直接创建,可以由 IFeatureWorkspace 接口的CreateQueryDef创建. 这个接口有两个属性必须设置(帮助文档是这样说明的,但是实际 ...

  4. CDN的基本工作过程

    CDN的基本工作过程 使用CDN会极大地简化网站的系统维护工作量,网站维护人员只需将网站内容注入CDN的系统,通过CDN部署在各个物理位置的服务器进行全网分发,就可以实现跨运营商.跨地域的用户覆盖.由 ...

  5. MySQL 的性能(下篇)—— 性能优化方法

    简介 文中内容均为阅读前辈的文章所整理而来,参考文章已在最后全指明 本文分为上下两篇: 上篇:MySQL 的 SQL 执行分析 下篇:MySQL 性能优化 下面为下篇内容,分为以下部分: 一.创建表时 ...

  6. Java公开课-06.单例

    一. 什么是单例模式 因程序需要,有时我们只需要某个类同时保留一个对象,不希望有更多对象,此时,我们则应考虑单例模式的设计. 二. 单例模式的特点 1. 单例模式只能有一个实例. 2. 单例类必须创建 ...

  7. 4.app是怎么炼成的

    很多刚进入app后端的小伙伴,有的是之前没有接触过这个行业,有的是只在学校学习了基本的技术知识,不知道开发app的整个流程是怎么样的,因此心里会有一股恐惧.听着别人口中的一大串app相关的术语,也不知 ...

  8. Python 枚举

    1. 枚举的定义 首先,定义枚举要导入enum模块.枚举定义用class关键字,继承Enum类.用于定义枚举的class和定义类的class是有区别. 示例代码: from enum import E ...

  9. Python3 requests与http.cookiejar的使用(cookie的保存与加载)

    在学习Python之余,发现Python2与Python3 有很大的变化,之前使用urllib和cookielib来保存cookie,发现很繁琐,于是改用requests.发现cookielib在3. ...

  10. java正则使用方法

    import java.util.regex.Matcher;import java.util.regex.Pattern; public class RegexMatches{    public ...