原生js实现倒计时
html代码:
<div class="box">距离下班还有:<span>01:01:30</span></div>
css代码:
*{
margin: 0;
padding: 0;
}
.box{
width: 600px;
height: 40px;
margin: 30px auto;
text-align: center;
line-height: 40px;
font-size: 26px;
font-weight: bold;
border: 2px dashed darkred;
background: lightcyan;
}
.box span{
padding-left: 10px;
color: darkblue;
}
js代码:
var span =
document.getElementsByClassName('box')[0].getElementsByTagName('span')[0];
var timer = window.setInterval(record,1000);
function record(){
var curDate = new Date();//获取当前的时间
var targetDate = new Date('2016/09/22 18:14:00'); //目标时间,先转化成时间格式的对象才能使用getTime()方法
var curDate1970 = curDate.getTime(); //当前时间距离1970的ms数
var targetDate1970 = targetDate.getTime(); //目标距离1970的ms
var time = targetDate1970 - curDate1970; //时间差
//换算单位把time换算成h/m/s
//先换算成小时
var h = Math.floor( time/(1000*60*60) ); // 向下取整
// 换算分钟 => 需要把h小时所占用的ms数减去,然后再换算分钟
var m = Math.floor( (time - h*60*60*1000)/(1000*60) );
// 换算s => 把小时和分钟所占用的ms数都减去,然后再换算成s
var s = Math.floor( (time - h*60*60*1000 - m*60*1000)/1000 );
if(h + m + s <= 0 ){
window.clearInterval(timer);
span.innerHTML = "00:00:00"
return;
}
span.innerHTML = addZero(h) + ":" + addZero(m) + ":" + addZero(s);
}
function addZero(n){ //给不足10的数前面添加一个0
return n < 10 ? '0' + n : n;
}
//date.getTime(); //当前的这个date时间距离1970年1月1日 8点的毫秒数
注:var date2 = new Date('2016/09/24 17:00:00');
console.log(date2);
//如果在new的过程中括号内添加了一个时间格式的字符串,那么就是把这个字符串转化成时间对象.然后就可以使用getFullYear()等方法了
date2.getFullYear();
原生js实现倒计时的更多相关文章
- 原生js 当前时间 倒计时代码
源:https://www.oschina.net/code/snippet_2318153_54763 <!DOCTYPE html> <html> <head> ...
- 原生 JS 实现手机验证码倒计时
可以使用 pointer-events 来阻止元素成为鼠标事件的 target.html5 新增操作元素 class 类名的方式 classList. classList 方法 add(value): ...
- js时间倒计时
看了网上的其他的例子,觉得写的都有点复杂,不好理解,于是自己动手写了个. 本来想封装成jquery插件,但是觉得因为功能很简单,没有必要做成jquery插件,引用的时候不需要引入jqery库,这里直接 ...
- 原生JS实现的h5小游戏-植物大战僵尸
代码地址如下:http://www.demodashi.com/demo/12755.html 项目介绍 本项目是利用原生js实现的h5小游戏-植物大战僵尸,主要结合了一下自己对于h5小游戏的理解,结 ...
- 使用原生JS,实现鼠标点击爱心效果 !!!
使用原生JS,实现鼠标点击爱心效果 !!! 引言: 在很多时候我们都需要实现鼠标点击出现图案或者文字这样的效果,对于用户而言,这样的体验是很极致的.其实实现起来也很简单,下面一起来学习一下吧.文末附上 ...
- 原生JS封装Ajax插件(同域&&jsonp跨域)
抛出一个问题,其实所谓的熟悉原生JS,怎样的程度才是熟悉呢? 最近都在做原生JS熟悉的练习... 用原生Js封装了一个Ajax插件,引入一般的项目,传传数据,感觉还是可行的...简单说说思路,如有不正 ...
- 常用原生JS方法总结(兼容性写法)
经常会用到原生JS来写前端...但是原生JS的一些方法在适应各个浏览器的时候写法有的也不怎么一样的... 今天下班有点累... 就来总结一下简单的东西吧…… 备注:一下的方法都是包裹在一个EventU ...
- 原生JS实现"旋转木马"效果的图片轮播插件
一.写在最前面 最近都忙一些杂七杂八的事情,复习软考.研读经典...好像都好久没写过博客了... 我自己写过三个图片轮播,一个是简单的原生JS实现的,没有什么动画效果的,一个是结合JQuery实现的, ...
- 再谈React.js实现原生js拖拽效果
前几天写的那个拖拽,自己留下的疑问...这次在热心博友的提示下又修正了一些小小的bug,也加了拖拽的边缘检测部分...就再聊聊拖拽吧 一.不要直接操作dom元素 react中使用了虚拟dom的概念,目 ...
随机推荐
- sql server deadlock跟踪的四种方法
最近写程序常会遇到deadlock victim,每次一脸懵逼.研究了下怎么跟踪,写下来记录下. 建测试数据 CREATE DATABASE testdb; GO USE testdb; CREATE ...
- 2018年星际争霸AI挑战赛–三星与FB获冠亚军,中科院自动化所夺得季军
雷锋网 AI 科技评论消息,2018 年 11 月 13-17 日,AAAI 人工智能与交互式数字娱乐大会 (AI for Interactive Digital Entertainment) 在阿尔 ...
- 【运维技术】Maven + Gogs + Nexus 实现版本管理 + 代码模块开发管理
Gogs:能够实现fork + 代码提交 + 代码框架 Nexus:进行jar包的版本管理,私服下载jar包共享jar包 Maven:在客户端进行模块管理和批量操作 1. 本地maven仓库配置配置s ...
- python函数—形参、实参、位置参数、关键字参数
1.通过def function_name([parameter]): 定义,函数一遇到return即结束运行.如果函数没有定义返回值,则返回None,如果定义了一个返回值,则返回该对象,如果一个re ...
- P2864 [USACO06JAN]树林The Grove
P2864 [USACO06JAN]树林The Grove 神奇的射线法+bfs 裸的bfs很难写....... 那么我们找一个最外围障碍点,向图的外边引一条虚拟射线. 蓝后bfs时经过这条射线奇数次 ...
- msf辅助模块的应用
msf辅助模块的应用 创建一个msf所需的数据库 进入模块 设置相关参数 查看 开启扫描
- hash-补做
题目 利用除留余数法为下列关键字集合的存储设计hash函数,并画出分别用开放寻址法和拉链法解决冲突得到的空间存储状态(散列因子取0.75) 关键字集合:85,75,57,60,65,(你的8位学号相加 ...
- [noip模拟题]LGTB 玩THD
LGTB 最近在玩一个类似DOTA 的游戏名叫THD 有一天他在守一座塔,对面的N 个小兵排成一列从近到远站在塔前面每个小兵有一定的血量hi,杀死后有一定的金钱gi 每一秒,他都可以攻击任意一个活着的 ...
- 【TCP/IP详解 卷一:协议】第二十章 TCP的成块数据流
本章节主要内容: ACK的累积 滑动窗口协议(即 接收方TCP数据报缓存的大小) 流量控制(慢启动 -发送方TCP的 拥塞窗口(cwnd) 以及接受方的 通告窗口) 20.1 引言 在教材的之前章节中 ...
- HDU 6103 Kirinriki(尺取法)
http://acm.hdu.edu.cn/showproblem.php?pid=6103 题意: 给出一个字符串,在其中找两串互不重叠的子串,计算它们之间的dis值,要求dis值小于等于m,求能选 ...