先看效果
//列表的的效果
//單個(gè)效果
//用法
列表的用法 一般用在div? ul > li 里面?
可支持 不同div ,li 顯示的 倒計(jì)時(shí) 格式不一樣
//例2:
//列表的的效果
//單個(gè)效果
var bjtimer={
sysTime:0, //服務(wù)器時(shí)間毫秒數(shù)
timeBodyName:"timecontainer", //顯示時(shí)間的容器
timeBodyTag:"div",
showFmt:"dd天HH時(shí)mm分ss秒",
notstartMsg:"即將開始:",
startingMsg:"剩余時(shí)間:",
afterStart:"活動(dòng)進(jìn)行中", //開始后的內(nèi)容
afterEnd:"活動(dòng)已結(jié)束", //結(jié)束后是否設(shè)置 提示內(nèi)容
stimeAttName:"stime", //自定義屬性
etimeAttName:"etime",
onlyFmt:"showFmt", //單個(gè)元素的格式
notstartHead:"nsmsg",
startingHead:"simsg",
showDay:true, //是否采用天
fmt_24:true, //是否采用 24小時(shí)格式
isUnion:true, //開始后,時(shí)候進(jìn)去 倒計(jì)時(shí) 剩余時(shí)間
timeOutArr:new Array(), //保存啟動(dòng)了的計(jì)時(shí)器對(duì)象,用于清除
startTimerOut:function(){
if(bjtimer.sysTime <=0){
alert("請先設(shè)置bjtimer.sysTimer為服務(wù)器時(shí)間");
return;
}else{
var timeBodyArray =bjtimer.getElesByName(bjtimer.timeBodyTag,bjtimer.timeBodyName);
for(var i=0;i<timeBodyArray.length;i++){
clearTimeout(bjtimer.timeOutArr[i]); //清空
var ele=timeBodyArray[i];
//獲取元素的自定義屬性
var stimenode=ele.attributes[bjtimer.stimeAttName];
var etimenode=ele.attributes[bjtimer.etimeAttName];
var fmtnode=ele.attributes[bjtimer.onlyFmt];
var nsnode=ele.attributes[bjtimer.notstartHead];
var sinode=ele.attributes[bjtimer.startingHead];
var stime=0;
var etime=0;
var onlyfmt=bjtimer.showFmt;
var nsmsg=bjtimer.notstartMsg;
var simsg=bjtimer.startingMsg;
if(stimenode!=null || !stimenode===undefined){
if(stimenode.nodeValue.indexOf("/")!=-1){
stime=converToDate(stimenode.nodeValue);
}else{
stime=stimenode.nodeValue;
}
}
if(etimenode!=null || !etimenode===undefined){
if(etimenode.nodeValue.indexOf("/")!=-1){
etime=converToDate(etimenode.nodeValue);
}else{
etime=etimenode.nodeValue;
}
}
if(fmtnode!=null || !fmtnode===undefined){
onlyfmt=fmtnode.nodeValue;
}
if(nsnode!=null || !nsnode===undefined){
nsmsg=nsnode.nodeValue;
}
if(sinode!=null || !sinode===undefined){
simsg=sinode.nodeValue;
}
//啟用計(jì)時(shí)器
bjtimer.timerOutRun(ele,stime,etime,bjtimer.sysTime,i,onlyfmt,nsmsg,simsg);
}
}
},
timerOutRun:function(ele,stime,etime,systime,i,showFmt,nsmsg,simsg){
var remainTime=0;
var type=1; //默認(rèn)為為開始
if(stime > systime){
type=1; //未開始
remainTime= stime - systime;
}else{
if(bjtimer.isUnion){
type=0; //將結(jié)束
remainTime= etime - systime;
}
}
var nD = 0;
var nH = 0;
if(bjtimer.showDay){
nD = parseInt(remainTime/(1000*60*60*24));
nH = parseInt(remainTime/(1000*60*60)) % 24;
}else{
nH = parseInt(remainTime/(1000*60*60));
}
var nM = parseInt(remainTime/(1000*60)) % 60;
var nS = parseInt(remainTime/1000) % 60;
if(bjtimer.fmt_24){
nD=nD < 10 ? "0"+nD : nD;
nH=nH < 10 ? "0"+nH : nH;
nM=nM < 10 ? "0"+nM : nM;
nS=nS < 10 ? "0"+nS : nS;
}
var showCont=showFmt;
showCont=showCont.replace("dd",nD);
showCont=showCont.replace("HH",nH);
showCont=showCont.replace("mm",nM);
showCont=showCont.replace("ss",nS);
if(type==1){
showCont=nsmsg+showCont;
stime=stime-1000;
}else{
showCont=simsg+showCont;
etime=etime-1000;
}
if(remainTime<=0){
clearTimeout(bjtimer.timeOutArr[i]);
var msg = (type==1) ? bjtimer.afterStart : bjtimer.afterEnd;
if(msg!=""){
ele.innerHTML=msg;
}else{
ele.innerHTML=showCont;
}
}else{
ele.innerHTML=showCont;
bjtimer.timeOutArr[i]=setTimeout(function(){bjtimer.timerOutRun(ele,stime,etime,systime,i,showFmt,nsmsg,simsg);},1000); //bjtimer.timerOutRun("+ele+","+stime+","+etime+","+i+")"
}
},
getElesByName:function(tag, name){
var returns = document.getElementsByName(name);
if(returns.length > 0) return returns;
returns = new Array();
var e = document.getElementsByTagName(tag);
for(var i = 0; i < e.length; i++){
if(e[i].getAttribute("name") == name){
returns[returns.length] = e[i];
}
}
return returns;
},isToday:function(systime,ctime){
return systime.getFullYear()==ctime.getFullYear() && systime.getMonth()==ctime.getMonth() && systime.getDate()==ctime.getDate();
},dateDiff:function(stime,etime){//計(jì)算兩個(gè)時(shí)間 相差的天數(shù)
return (stime-etime)/(1000*3600*24);
}
}
//用法
列表的用法 一般用在div? ul > li 里面?
可支持 不同div ,li 顯示的 倒計(jì)時(shí) 格式不一樣
//注意 要顯示 倒計(jì)時(shí)的 標(biāo)簽名字為 timecontainer 然后在這個(gè)表情上自定義屬性 stime etime, showFmt,notstartMsg 等屬性,
<div class="rest_time" name="timecontainer" stime="<fmt:formatDate value="${brandhd.starttime}" pattern="yyyy/MM/dd HH:mm:ss"/>" etime="<fmt:formatDate value="${brandhd.endtime}" pattern="yyyy/MM/dd HH:mm:ss"/>" ></div>
然后在窗體加載事件里面寫
$(functtion(){
bjtimer.sysTime=systimes.getTime(); //系統(tǒng)的 毫秒數(shù)
bjtimer.startTimerOut();
});
//例2:
<!--計(jì)時(shí)開始-->
<div class="g_timer_wrap">
<div class="g_timer" id="g_timer" name="timecontainer" nsmsg="距活動(dòng)開始還有:" simsg="距活動(dòng)結(jié)束還有:" showFmt="[i]dd[/i]天[i]HH[/i]時(shí)[i]mm[/i]分[i]ss[/i]秒" stime="<fmt:formatDate value="${superBrandHd.starttime}" pattern="yyyy/MM/dd HH:mm:ss"/>" etime="<fmt:formatDate value="${superBrandHd.endtime}" pattern="yyyy/MM/dd HH:mm:ss"/>">
</div>
</div>
$(function(){
bjtimer.sysTime=converToDate('<%=sysdate%>').getTime();
bjtimer.startTimerOut();
}):
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

