本文主要是介绍多个倒计时切换 开始和结束,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
/*
* @Author: Mark
* @Date: 2015-08-06 13:54:01
* @Last Modified by: Mark
* @Last Modified time: 2015-08-17 11:49:27
*/
var tmover=(function(){function tim(opt){_this=this;//保存当前对象this.timer=null; //设置定时器this.opme=Object.prototype.toString.call(opt.obj).slice(8,-1)=="String"?document.querySelectorAll(opt.obj):null; //获取定时器对象this.stxt=Object.prototype.toString.call(opt.txtstart).slice(8,-1)=="String"?opt.txtstart:"距离开始"; //设置距离开始的默认值this.ltxt=Object.prototype.toString.call(opt.txtstart).slice(8,-1)=="String"?opt.txtlast:"剩余"; //设置剩余的默认值for (var i = 0; i < this.opme.length; i++) { //循环当前页面所有定时器this.stime=this.opme[i].getAttribute(opt.stat)?this.opme[i].getAttribute(opt.stat):this.opme[i].getAttribute(opt.end); //如果没有距离开始的需求,那就说明只有单个倒计时 this.opme[i].flag=1; //设置定时器开关this.opme[i].str=""; //设置每个DOM的字符串显示文字this.endtime=this.opme[i].getAttribute(opt.end); //获取倒计时this.loop({oindex:this.opme[i],oend:_this.endtime,tend:opt.txtend,tstat:_this.stxt,tlast:_this.ltxt,ostm:_this.stime,ck:true}); //初始化倒计时进行};}tim.prototype={constructor : 'tmover', //设置原型引用对象为tmovermove:function(json){ //倒计时计算_this.ender=json.ck?new Date(json.ostm).getTime():new Date(json.oend).getTime();//没有开始倒计时 就设置结束倒计时_this.stattime=new Date().getTime();_this.opatime=_this.ender-_this.stattime; //时间差_this.second=(_this.opatime)/1000;_this.Minute=Math.floor(_this.second/60);_this.houre=Math.floor(_this.Minute/60);_this.day=Math.floor(_this.houre/24);_this.houres=Math.floor(_this.houre%24);_this.Minutes=Math.floor(_this.Minute%60);_this.seconds=Math.floor(_this.second%60);_this.swite(json);},swite:function(json){//判断DOM显示内同if(json.oend==json.ostm){//只有结束倒计时需求if(_this.opatime<=0&&json.oindex.flag){_this.setText(json.oindex,json.tend);//设置结束问题 下同json.oindex.flag=0;_this.clear(json.oindex.timer);//清楚倒计时 下同}else if(_this.opatime>0){_this.nowtext(json.oindex,json.tlast); //显示倒计时时间 下同json.oindex.flag=1;}}else if(json.oend!=json.ostm&&!json.ck){//有开始和结束需求 并且已经进入结束倒计时if(_this.opatime<=0&&json.oindex.flag){_this.setText(json.oindex,json.tend);json.oindex.flag=0;_this.clear(json.oindex.timer);}else if(_this.opatime>0){_this.nowtext(json.oindex,json.tlast);json.oindex.flag=1;}}else if(json.oend!=json.ostm&&json.ck){//有开始和结束需求if(_this.opatime<=0){_this.clear(json.oindex.timer);_this.loop({oindex:json.oindex,oend:json.oend,tend:json.tend,tstat:json.tstat,tlast:json.tlast,ostm:json.ostm,ck:false});}else{_this.nowtext(json.oindex,json.tstat);}}},setText:function(obj,txt){obj.innerText="";obj.innerText=txt;},nowtext:function(obj,str){obj.innerText=str+_this.day+"天"+_this.houres+"小时"+_this.Minutes+"分"+_this.seconds+"秒";},loop:function(json){_this.move(json);json.oindex.timer=setInterval(function(){_this.move(json)},1000);},clear:function(all){clearInterval(all);}}return tim;
})()
demo:
http://w3cweb.sinaapp.com/7/demo.html
这篇关于多个倒计时切换 开始和结束的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!