1. 程式人生 > >vue寫個計時器 暫停 開始 重置

vue寫個計時器 暫停 開始 重置

<template>
  <div class="wrapper">
    <h1 id=mytime>{{str}}</h1>
    <!-- <input id="mytime" type="text" name="" value="顯示時間"> -->
    <button id="stop" name="button" @click="stop">stop</button>
    <button id="start" name="button" @click="start">start</button>
    <button id="reset" name="button" @click="reset">reset</button>
  </div>


</template>
<script>



  export default {

    data(){
      return {
        h:0,//定義時,分,秒,毫秒並初始化為0;
        m:0,
        ms:0,
        s:0,
        time:0,
        str:'',
        mytime:''

      }
    },
    methods:{


       timer(){   //定義計時函式
    this.ms=this.ms+50;         //毫秒
    if(this.ms>=1000){
      this.ms=0;
      this.s=this.s+1;         //秒
    }
    if(this.s>=60){
      this.s=0;
      this.m=this.m+1;        //分鐘
    }
    if(this.m>=60){
      this.m=0;
      this.h=this.h+1;        //小時
    }
    this.str =this.toDub(this.h)+":"+this.toDub(this.m)+":"+this.toDub(this.s)+""/*+this.toDubms(this.ms)+"毫秒"*/;
    // document.getElementById('mytime').innerHTML=h+"時"+m+"分"+s+"秒"+ms+"毫秒";
  },

   reset(){  //重置
    clearInterval(this.time);
    this.h=0;
     this.m=0;
     this.ms=0;
     this.s=0;
    this.str="00:00:00";
  },

   start(){  //開始
     this.time=setInterval(this.timer,50);
  },

   stop(){  //暫停
    clearInterval(this.time);
  },

   toDub(n){  //補0操作
    if(n<10){
      return "0"+n;
    }
    else {
      return ""+n;
    }
  },

   toDubms(n){  //給毫秒補0操作
    if(n<10){
      return "00"+n;
    }
    else {
      return "0"+n;
    }

  }

  },
    //例項建立完成後呼叫,此階段完成了資料的觀測等,但尚未掛載,$el 還不可用。需要初始化處理一些資料時會比較有用
    created:function () {

    },


  }
</script>
<style scoped>
  #mytime{
    background: #bbb;
    color: #fff;
    display: block;
  }
  .wrapper{
    text-align: center;
    width: 60%;
    margin: 250px auto;
  }

</style>