zoukankan      html  css  js  c++  java
  • 多个倒计时切换 開始和结束

    /* 
    * @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', //设置原型引用对象为tmover move: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
  • 相关阅读:
    ssh图示+hibernate图示
    spring Transactional
    Spring datasource
    sqlloader导入数据
    Spring Aop Annotation(@Pointcut)
    ajax传输文件+检验
    Spring Aop Annotation
    JDK的动态代理
    nginx代理gitlab
    python相关
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/6849657.html
Copyright © 2011-2022 走看看