亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

原生js實現倒計時功能(多種格式調用)

2019-11-19 17:59:03
字體:
來源:轉載
供稿:網友

話不多說,請看代碼:

<!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, h1, h2, h3, h4, h5, h6, 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; /*css-3*/   white-space: -moz-pre-wrap; /*Mozilla,since1999*/   white-space: -pre-wrap; /*Opera4-6*/   white-space: -o-pre-wrap; /*Opera7*/   word-wrap: break-word; /*InternetExplorer5.5+*/ } .example{  padding-top:40px;  margin-bottom:90px; } .example .call{  padding:18px 5px;  background:#f0f5f8; } .example h2{  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  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">  <h1>調用方法:</h1>  <p>new countdown(selector,{options});</p>  </div>  <h2>options參數</h2>  <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>

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持武林網!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲男人天堂手机在线| 国产精品都在这里| 精品亚洲夜色av98在线观看| 欧美大荫蒂xxx| 97在线观看视频国产| 亚洲free性xxxx护士白浆| 亚洲国产成人一区| 欧美激情亚洲视频| 狠狠色噜噜狠狠狠狠97| 亚洲国产日韩欧美在线图片| 色综合久久88色综合天天看泰| 亚洲精品永久免费精品| 欧美激情亚洲激情| 欧美日韩国产一中文字不卡| 高清欧美一区二区三区| 色哟哟入口国产精品| 久久国内精品一国内精品| 成人黄色在线观看| 日韩精品中文字幕久久臀| 色偷偷88888欧美精品久久久| 欧美精品videosex性欧美| 国产日本欧美一区二区三区在线| 少妇高潮久久久久久潘金莲| 亚洲精品永久免费| 亚洲成人999| 欧美视频中文在线看| 久久久久久尹人网香蕉| 亚洲人成电影在线播放| 亚洲精品福利资源站| 亚洲美腿欧美激情另类| www.欧美三级电影.com| 欧美成人h版在线观看| 亚洲精品综合精品自拍| 亚洲人成电影网站色| 亚洲国产成人精品一区二区| 国产日韩欧美在线观看| 亚洲欧洲日产国产网站| 精品无人区乱码1区2区3区在线| 国语自产精品视频在线看| 欧美日韩国产成人在线| 岛国精品视频在线播放| 亚洲人成电影网站色| 欧美性猛交xxxx免费看漫画| 日韩在线视频免费观看高清中文| 国产成人啪精品视频免费网| 亚洲欧美日韩区| 中文在线不卡视频| 成人写真视频福利网| 91在线精品视频| 日韩欧美国产高清91| 美日韩精品视频免费看| 国产福利精品av综合导导航| 中文字幕国产日韩| 91九色国产在线| 久久久亚洲精品视频| 国产精品福利小视频| 国产精品偷伦免费视频观看的| 亚洲午夜激情免费视频| 亚洲在线视频福利| 北条麻妃一区二区在线观看| 国产欧美精品va在线观看| 亚洲人成在线观看| 欧美成人三级视频网站| 日韩电影大片中文字幕| 久久久天堂国产精品女人| 日韩欧美亚洲范冰冰与中字| 欧美日韩亚洲精品一区二区三区| 亚洲国产婷婷香蕉久久久久久| 亚洲va欧美va国产综合剧情| 亚洲精品资源在线| 日韩最新中文字幕电影免费看| 国产精品久久久久久久久久| 性欧美激情精品| 亚洲免费电影在线观看| 高清欧美一区二区三区| 精品无人区太爽高潮在线播放| 久久成人亚洲精品| 亚洲跨种族黑人xxx| 国产精品69精品一区二区三区| 久久久久久久一区二区三区| 久久久久久久国产精品视频| 在线成人免费网站| 91香蕉亚洲精品| 日韩精品免费一线在线观看| 国产成人拍精品视频午夜网站| 成人午夜在线观看| 91成人在线观看国产| 久久久久久999| 欧美丝袜第一区| 国产精品久久久久久久一区探花| 日本久久久久久久| 日韩免费观看高清| www.亚洲成人| 日韩av观看网址| 91久久久久久久久久久久久| 久久久久久中文| 欧美亚洲视频在线观看| 日韩成人高清在线| 久久99精品久久久久久青青91| 亚洲精品美女久久久| 亚洲欧美中文日韩v在线观看| 国产97在线视频| www.日韩视频| 国产精品69av| 国产主播精品在线| 色综合五月天导航| 亚洲成人在线视频播放| 免费91在线视频| 欧美日韩国产精品一区二区不卡中文| 欧美亚洲另类激情另类| 亚洲热线99精品视频| 亚洲国产精品久久久久秋霞蜜臀| 亚洲欧洲一区二区三区在线观看| 日韩中文字幕欧美| 91av视频在线| 亚洲最新中文字幕| 亚洲va欧美va国产综合剧情| 3344国产精品免费看| 精品国内亚洲在观看18黄| 欧美国产日本在线| 欧美极品欧美精品欧美视频| 国色天香2019中文字幕在线观看| 一区二区三区国产在线观看| 26uuu国产精品视频| 欧美黑人巨大xxx极品| 一区二区成人精品| 91在线观看免费高清| 欧美激情精品久久久久久变态| 国产精品va在线播放我和闺蜜| 亚洲伊人一本大道中文字幕| 久久精品国产一区二区三区| 97香蕉超级碰碰久久免费的优势| 亚洲欧美一区二区三区情侣bbw| 国产精品夫妻激情| 国产一区二区三区在线观看视频| 一个人看的www欧美| 久久久久久久999精品视频| 视频在线一区二区| 欧美人在线观看| 国产噜噜噜噜噜久久久久久久久| 成人444kkkk在线观看| 欧美日韩在线免费| 久久久久久尹人网香蕉| 久久精品亚洲国产| 欧美激情免费视频| 欧美激情手机在线视频| 91精品在线播放| 成人h片在线播放免费网站| 欧美一乱一性一交一视频| 亚洲精品久久久久久久久久久| 久久中文精品视频| 成人免费网站在线看| 日韩精品在线免费观看视频| 久久久精品国产一区二区| 国产成人一区二区三区| 日韩网站在线观看| 日韩福利伦理影院免费| 欧美日韩美女视频| 91禁外国网站| 成人国产精品久久久久久亚洲| 国产精品久久色| 久久久免费观看视频| 一区三区二区视频| 国产精品v日韩精品|