js动态数字时钟
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动态数字时钟的更多相关文章
- js实现动态数字时钟
1.效果如下 2.html部分 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"&g ...
- js 动态时钟
js 动态时钟 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...
- MUI 里js动态添加数字输入框后,增加、减少按钮无效
numbox 的自动初化是在 mui.ready 时完成的mui 页面默认会自动初始化页面中的所有数字输入框,动态构造的 DOM 需要进行手动初始化.比如:您动态创建了一个 ID 为 abc 的数字输 ...
- JS — 实现简单的数字时钟
js实现简单的数字时钟 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> & ...
- JS制作一个创意数字时钟
通过js代码制作一个创意数字时钟 通过JS代码实现创意数字时钟效果如下:由数字化的卡通形象图片取代常规的数字显示当前实时北京时间.具体效果示例: 核心重点: (1)Date方法的初步了解 (2)构建模 ...
- JS框架_(Vue.js)带有星期日期的数字时钟
百度云盘 传送门 密码:tv1v 数字时钟效果: <!doctype html> <html> <head> <meta charset="utf- ...
- html5 canvas js(数字时钟)
<!doctype html> <html> <head> <title>canvas dClock</title> </head ...
- 通过Canvas + JS 实现简易时钟实战
最近通过各种渠道学习了下html5中的canvas元素,为了练练手就随手写了一个简易的时钟.时钟本身不复杂,没有使用图片进行美化,下面就与大家分享一下具体的代码: 这是最终实现的效果: 部分的启发点来 ...
- 基于Verilog HDL 的数字时钟设计
基于Verilog HDL的数字时钟设计 一.实验内容: 利用FPGA实现数字时钟设计,附带秒表功能及时间设置功能.时间设置由开关S1和S2控制,分别是增和减.开关S3是模式选择:0是正常时钟 ...
随机推荐
- 2017OKR年终回顾与2018OKR初步规划
一.2017OKR - 年终回顾 自从6月份进行了年中总结,又是半年过去了,我的2017OKR又有了一些milestone.因此,按照国际惯例,又到了年终回顾的时候了,拉出来看看完成了多少.(以下目标 ...
- 团队项目第二阶段个人进展——Day10
一.昨天工作总结 冲刺第十天,做程序的测试,并修复一些小的bug 二.遇到的问题 无 三.今日工作规划 继续对程序进行测试优化
- CSS中的变形、过渡、动画效果
一.变形 .过渡效果 1:元素平移 x方向 y方向 transform:translate(100px 100px); 2:过渡动画效果 a:什么属性参与过渡效果 b:过渡时间 c:过渡的效果 值包含 ...
- 杨老师课堂之JavaScript定时器_农夫山泉限时秒杀案例
预览效果图: 使用到的知识点: 定时器 setInterval(函数,毫秒):在指定的毫秒数后调用函数或执行一段代码 取消定时器 clearInterval:取消由setInterval设置的定时器 ...
- PAT1134:Vertex Cover
1134. Vertex Cover (25) 时间限制 600 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue A vertex ...
- PAT1113: Integer Set Partition
1113. Integer Set Partition (25) 时间限制 150 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue ...
- Socket 聊天工具
package cn.davy.mychat; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.FontD ...
- SSM-Spring-11:Spring中使用代理工厂Bean实现aop的四种增强
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 说说那四种增强:前置增强,后置增强,环绕增强,异常增强 那什么是代理工厂bean呢? org.springfr ...
- JAVAEE——Mybatis第二天:输入和输出映射、动态sql、关联查询、Mybatis整合spring、Mybatis逆向工程
1. 学习计划 1.输入映射和输出映射 a) 输入参数映射 b) 返回值映射 2.动态sql a) If标签 b) Where标签 c) Sql片段 d) Foreach标签 3.关联查询 a) 一对 ...
- attr和prop的区别以及在企业开发中应该如何抉择
attr和prop有很多相同的地方,比如都可以操作标签的属性节点,而且获取的时候都只可以获取到相同节点的第一个,例如这样: $('span').attr('class');和$('span').pro ...