广告
返回顶部
首页 > 资讯 > 前端开发 > html >如何使用原生js实现倒计时功能
  • 917
分享到

如何使用原生js实现倒计时功能

2024-04-02 19:04:59 917人浏览 泡泡鱼
摘要

这篇文章给大家分享的是有关如何使用原生js实现倒计时功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。<!DOCTYPE html><html&nbs

这篇文章给大家分享的是有关如何使用原生js实现倒计时功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>倒计时-多种格式调用-原生js封装</title> <link rel="shortcut icon" href="../public/image/favicon.ico" type="images/x-icon"/> <link rel="icon" href="../public/image/favicon.png" type="images/png"/> <link rel="stylesheet" type="text/CSS" href="../public/style/cssreset-min.css"> <link rel="stylesheet" type="text/css" href="../public/style/common.css"> <style type="text/css">  html{ height:100%; } body, div, dl, dt, dd, ul, ol, li, h2, h3, h4, h5, h6, h7, pre, code, fORM, fieldset, legend, input, textarea, p, blockquote, th, td { margin: 0; padding: 0 } ol, ul { list-style: none } body{ position: relative; min-height:100%; font-size:14px; font-family: Tahoma, Verdana,"Microsoft Yahei"; color:#333; } a{ text-decoration: none; color:#333; } .header{ width: 960px; padding-top: 15px; margin: 0 auto; line-height: 30px; text-align: right; } .header a{ margin: 0 5px; } .main{ width:960px; margin: 50px auto 0; } .code{ border:1px dashed #e2e2e2; padding:10px 5px; margin-bottom:25px; } pre { font-family: "Microsoft Yahei",Arial,Helvetica; white-space: pre-wrap;  white-space: -moz-pre-wrap;  white-space: -pre-wrap;  white-space: -o-pre-wrap;  Word-wrap: break-word;  } .example{ padding-top:40px; margin-bottom:90px; } .example .call{ padding:18px 5px; background:#f0f5f8; } .example h3{ padding-top:20px; margin-bottom:7px; } .example table { width:100%; table-layout:fixed; border-collapse: collapse; border-spacing: 0; border: 1px solid #cee1ee; border-left: 0; } .example thead { border-bottom: 1px solid #cee1ee; background-color: #e3eef8; } .example tr { line-height: 24px; font-size: 13px; } .example tr:nth-child(2n) { background-color: #f0f5f8; } .example tr th,.example tr td { border-left: 1px solid #cee1ee; word-break: break-all; word-wrap: break-word; padding:0 10px; font-weight: normal; } .example tr th { color: #555; padding-top: 2px; padding-bottom: 2px; text-align: left; }  .countdown { margin-bottom: 15px; } </style> <script type="text/javascript">  (function() { var Countdown = function(el, opts) { var self = this; var defaults = { 'format': 'hh:mm:ss', //格式 'endtime': '', //结束时间 'interval': 1000, //多久倒计时一次 单位:ms 'starttime':r(el)[0].innerHTML, //开始时间 'countEach': function(time) { //每单位时间出发事件,传入一个对象,包含时间信息(month)和时间格式化输出(format) r(el)[0].innerHTML=time['format'] }, 'countEnd':function (time) {} //倒计时结束回调事件 } opts = opts || {}; for (var w in defaults) { if ("undefined" == typeof opts[w]) { opts[w] = defaults[w]; } } this.params = opts; this.container = r(el); if (this.container.length > 1) { var x = []; return this.container.each(function() { x.push(new Countdown(this, opts)) }), x } this._hander=null; this._start=0; this._end=0; this.isTimestamp = isNaN(this.params.starttime)||isNaN(this.params.endtime);//是否为秒计数模式 this.init(); } Countdown.prototype = { //初始化 init: function() { var self = this; this.reset(); }, reset:function(){ var self = this; if (this.isTimestamp) { this._start = this.params.starttime ? this.getTimestamp(this.params.starttime) : (+new Date()); this._end = this.getTimestamp(this.params.endtime); } else { this._start = this.params.starttime * 1e3; this._end = this.params.endtime * 1e3; } this.count(); }, count:function(){ var self = this; this._hander = setInterval(function(){ self._start-=self.params.interval; self.params.countEach(self.getTime(self._start)); if(self._start<=self._end){ clearInterval(self._hander); self.params.countEnd(); } },self.params.interval); }, //获取时间戳 getTimestamp:function(str){ return +new Date(str)||+new Date('1970/1/1 '+str); }, timeFormat:function(fmt,timestamp){ var date = new Date(timestamp); var o = { "M+" : date.getMonth()+1, //月份 "d+" : date.getDate(), //日 "h+" : date.getHours(), //小时 "m+" : date.getMinutes(), //分 "s+" : date.getSeconds(), //秒 "q+" : Math.floor((date.getMonth()+3)/3), //季度 "S" : date.getMilliseconds() //毫秒 }; if(/(y+)/.test(fmt)){ fmt=fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length)); } for(var k in o){ if(new RegExp("("+ k +")").test(fmt)){ fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length))); } } return fmt; }, getTime: function(timestamp) { var self = this; var date, format; if (this.isTimestamp) { date = new Date(timestamp); format = self.timeFormat(self.params.format, timestamp); } else { date = new Date(); format = timestamp / 1e3; } return { 'year': date.getFullYear(), 'month': date.getMonth() + 1, 'day': date.getDate(), 'hour': date.getHours(), 'minute': date.getMinutes(), 'second': date.getSeconds(), 'quarter': Math.floor((date.getMonth() + 3) / 3), 'microsecond': date.getMilliseconds(), 'format': format }; } } var r = (function() { var e = function(e) { var a = this, t = 0; for (t = 0; t < e.length; t++) { a[t] = e[t]; } return a.length = e.length, this }; e.prototype = { addClass: function(e) { if ("undefined" == typeof e) return this; for (var a = e.split(" "), t = 0; t < a.length; t++) for (var r = 0; r < this.length; r++) this[r].classList.add(a[t]); return this }, each: function(e) { for (var a = 0; a < this.length; a++) e.call(this[a], a, this[a]); return this }, html: function(e) { if ("undefined" == typeof e) return this[0] ? this[0].innerHTML : void 0; for (var a = 0; a < this.length; a++) this[a].innerHTML = e; return this }, find: function(a) { for (var t = [], r = 0; r < this.length; r++) for (var i = this[r].querySelectorAll(a), s = 0; s < i.length; s++) t.push(i[s]); return new e(t) }, append: function(a) { var t, r; for (t = 0; t < this.length; t++) if ("string" == typeof a) { var i = document.createElement("div"); for (i.innerHTML = a; i.firstChild;) this[t].appendChild(i.firstChild) } else if (a instanceof e) for (r = 0; r < a.length; r++) this[t].appendChild(a[r]); else this[t].appendChild(a); return this }, } var a = function(a, t) { var r = [], i = 0; if (a && !t && a instanceof e) { return a; } if (a) { if ("string" == typeof a) { var s, n, o = a.trim(); if (o.indexOf("<") >= 0 && o.indexOf(">") >= 0) { var l = "div"; for (0 === o.indexOf("<li") && (l = "ul"), 0 === o.indexOf("<tr") && (l = "tbody"), (0 === o.indexOf("<td") || 0 === o.indexOf("<th")) && (l = "tr"), 0 === o.indexOf("<tbody") && (l = "table"), 0 === o.indexOf("<option") && (l = "select"), n = document.createElement(l), n.innerHTML = a, i = 0; i < n.childnodes.length; i++) r.push(n.childNodes[i]) } else for (s = t || "#" !== a[0] || a.match(/[ .<>:~]/) ? (t || document).querySelectorAll(a) : [document.getElementById(a.split("#")[1])], i = 0; i < s.length; i++) s[i] && r.push(s[i]) } else if (a.nodeType || a === window || a === document) { r.push(a); } else if (a.length > 0 && a[0].nodeType) { for (i = 0; i < a.length; i++) { r.push(a[i]); } } } return new e(r) }; return a; }()) window.countdown = Countdown; })()  </script></head><body> <div class="header"> <a href="https://GitHub.com/huanghanzhilian/widget" target="_blank">项目地址</a> <a href="/widget/">返回首页</a> </div> <div class="main"> <div class="countdown"> <p>#例子1# 12:00:00到11:50:00</p> <p id="countdown" class="">12:00:00</p> </div> <script type="text/javascript"> new countdown("#countdown", { endtime: '11:50:00' }); </script> <div class="code"> <p> endtime: '11:50:00',设置结束时间/默认值为空||0,执行其他默认参数 </p> <p>new countdown("#countdown", { endtime: '11:50:00' });</p> </div> <div class="countdown"> <p>#例子2# 60到50</p> <p id="countdown1" class="">60</p> </div> <script type="text/javascript"> new countdown("#countdown1", { endtime: '50', countEnd: function() { alert("结束") } }); </script> <div class="code"> <p> countEnd: 'function',设置结束倒计时后触发的函数/默认值为空,执行其他默认参数 </p> <p>new countdown("#countdown1", { endtime: '50', countEnd: function() { alert("结束") } });</p> </div> <div class="countdown"> <p>#例子3# 60到0</p> <p id="countdown2" class=""></p> </div> <script type="text/javascript"> new countdown("#countdown2", { starttime:'60' }); </script> <div class="code"> <p> starttime:'60',设置开始时间/默认值为元素内容,执行其他默认参数 </p> <p>new countdown("#countdown2", { starttime:'60' });</p> </div> <div class="countdown"> <p>#例子4# 2017/01/11,11:00:00到1970/1/1</p> <p id="countdown3" class="">2017/01/11,11:00:00</p> </div> <script type="text/javascript"> new countdown("#countdown3", { format:'yy:MM:dd:hh:mm:ss' }); </script> <div class="code"> <p> format:'yy:MM:dd:hh:mm:ss',格式化输出的时间格式/默认值为'hh:mm:ss',执行其他默认参数 </p> <p>new countdown("#countdown3", { format:'yy:MM:dd:hh:mm:ss' });</p> </div> <div class="example"> <div class="call"> <h2>调用方法:</h2> <p>new countdown(selector,{options});</p> </div> <h3>options参数</h3> <table> <thead> <tr> <th width="150">参数</th> <th width="100">默认值</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td>format</td> <td>'hh:mm:ss'</td> <td>格式化输出的时间格式,年(y)、月(M)、日(d)、小时(h)、分(m)、秒(s)、毫秒(S)、季度(q)</td> </tr> <tr> <td>starttime</td> <td>''</td> <td>开始时间</td> </tr> <tr> <td>endtime</td> <td>''</td> <td>结束时间</td> </tr> <tr> <td>interval</td> <td>1000</td> <td>计数的时间间隔(单位:毫秒)</td> </tr> <tr> <td>countEach(time)</td> <td>[时间格式化输出]</td> <td>每计时单位执行,其中time包含时间信息:year年、quarter季度、month月、day日、hour小时、minute分钟、second秒、microsecond毫秒、format格式化输出</td> </tr> <tr> <td>countEnd(time)</td> <td>[时间格式化输出]</td> <td>计时结束后执行,其中time包含时间信息:year年、quarter季度、month月、day日、hour小时、minute分钟、second秒、microsecond毫秒、format格式化输出</td> </tr> </tbody> </table> </div> </div></body></html>

感谢各位的阅读!关于“如何使用原生js实现倒计时功能”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: 如何使用原生js实现倒计时功能

本文链接: https://www.lsjlt.com/news/89816.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用原生js实现倒计时功能
    这篇文章给大家分享的是有关如何使用原生js实现倒计时功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。<!DOCTYPE html><html&nbs...
    99+
    2022-10-19
  • 原生js怎样实现倒计时功能
    这篇文章主要介绍原生js怎样实现倒计时功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!思路:(1)获取日期对象、现在距离1970年的毫秒数、2018年距离1970年的毫秒数、201...
    99+
    2022-10-19
  • js如何倒计时功能
    这篇文章主要介绍“js如何倒计时功能”,在日常操作中,相信很多人在js如何倒计时功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”js如何倒计时功能”的疑惑有所帮助!接下来,...
    99+
    2022-10-19
  • JS怎么实现倒计时功能
    本篇内容主要讲解“JS怎么实现倒计时功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JS怎么实现倒计时功能”吧!HTML代码:<div id=...
    99+
    2022-10-19
  • js如何实现短信发送倒计时功能
    这篇文章将为大家详细讲解有关js如何实现短信发送倒计时功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。本文实例为大家分享了js短信发送倒计时的具体代码,供大家参考,具体...
    99+
    2022-10-19
  • js如何实现倒计时
    这篇文章将为大家详细讲解有关js如何实现倒计时,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。首先呢,开始写之前一定要理清楚思路,思路清晰了,那写起来就容易多了,下面我分了...
    99+
    2022-10-19
  • 如何使用Python实现windows倒计时锁屏功能
    实现思路1)主要介绍了python实现windows倒计时锁屏功能python实现实windows倒计时锁屏功能 # 倒计时锁屏 import time from ctypes import * def closewindows(close...
    99+
    2023-05-14
    Python Windows
  • 原生JS实现简单计算器功能
    本文实例为大家分享了JS实现简单计算器功能的具体代码,供大家参考,具体内容如下 使用html和css写出计算器的基本结构和样式,用原生JS实现计算器的加减乘除运算功能,只能计算简单的...
    99+
    2022-11-13
  • python如何实现简单倒计时功能
    这篇文章给大家分享的是有关python如何实现简单倒计时功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专注的是解决问题,而不是搞明...
    99+
    2023-06-14
  • Android如何实现抢购倒计时功能
    这篇文章将为大家详细讲解有关Android如何实现抢购倒计时功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、效果图二、思路算多少秒,秒数取余60,(满足分后剩下的秒数)算多少分,秒数除60,再取余6...
    99+
    2023-06-14
  • Android利用Chronometer实现倒计时功能
    项目需要实现一个计时的功能,利用Chronometer虽然可以很方便的实现计时功能,但需要的却是一个倒计时控件。 百度了一下方法不少,倒计时的却没有,于是用Chronomete...
    99+
    2022-06-06
    倒计时 Android
  • js定时器如何实现倒计时效果
    这篇文章主要介绍了js定时器如何实现倒计时效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下日期函数倒计时 =  用 ...
    99+
    2022-10-19
  • 使用vue怎么实现一个倒计时功能
    这期内容当中小编将会给大家带来有关使用vue怎么实现一个倒计时功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。通过父组件传入的结束时间减去当前日期得到剩余时间子组件部分<div clas...
    99+
    2023-06-14
  • 利用Android实现一个倒计时功能
    这篇文章给大家介绍利用Android实现一个倒计时功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。先上效果图activity_main.xml<&#63;xml version="1.0&qu...
    99+
    2023-05-31
    android roi
  • Linux用脚本实现“时分秒“倒计时功能
    1.怎样实现“时分秒“倒计时 在linux下,脚本的完成相对于C语言来说稍微随意一点,可以按照字的想法写,只要有逻辑就可以了。 示例: 注意: clean的功能 这个命令将会刷新屏幕,本质上只是让终端显示页向后翻...
    99+
    2022-06-04
    linux 时分秒倒计时 linux 倒计时
  • js如何实现防刷新的倒计时
    这篇文章主要为大家展示了“js如何实现防刷新的倒计时”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“js如何实现防刷新的倒计时”这篇文章吧。最近在维护考试系统,在...
    99+
    2022-10-19
  • js如何实现酷炫倒计时动画
    这篇“js如何实现酷炫倒计时动画”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“js如何实现酷炫倒计时动画”文章吧。<!...
    99+
    2023-07-02
  • 原生JS怎么实现简单计算器功能
    本篇内容主要讲解“原生JS怎么实现简单计算器功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“原生JS怎么实现简单计算器功能”吧!使用html和css写出计算器的基本结构和样式,用原生JS实现计...
    99+
    2023-06-29
  • 怎么使用Python实现windows倒计时锁屏功能
    这篇文章主要介绍了怎么使用Python实现windows倒计时锁屏功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Python实现windows倒计时锁屏功能文章都会有所收获,下面我们一起来看看吧。实...
    99+
    2023-07-06
  • 使用javascript怎么实现一个定时器倒计时功能
    这期内容当中小编将会给大家带来有关使用javascript怎么实现一个定时器倒计时功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。<!DOCTYPE html><html&n...
    99+
    2023-06-14
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作