首頁 >web前端 >js教程 >VUE元件的實例:VUE元件如何實現倒數計時?

VUE元件的實例:VUE元件如何實現倒數計時?

不言
不言原創
2018-08-09 17:29:442501瀏覽

 這篇文章帶給大家的內容是關於VUE元件的實例:VUE元件如何實現倒數計時?有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

一、效果圖:

 

#二、CSS程式碼

##

.box{
    width: 300px;
    height: 100px;
    line-height: 100px;
    margin: 100px auto;
    background-color: #eee;
    text-align: center;
    font-size: 30px;
    color: #666;
}.count-number{
    color: red;
    font-size: 30px;
    font-weight: bold;
}

三、HTML程式碼

<p class="wrap">
    <countdown seconds="15" index="1"></countdown>
    <countdown seconds="30" index="2"></countdown></p>

四、javascript程式碼

#

// 倒计时组件
Vue.component(&#39;countdown&#39;, {
    props: [&#39;seconds&#39;, &#39;index&#39;],
    data: () => {
         return {
            timerCount: 0
         }
     },
     mounted() {
         this.timing();
     },
     methods: {
         timing() {
             let startTime = localStorage.getItem(`startTime${this.index}`);
             let nowTime = new Date().getTime();
             if(startTime) {
                  let surplus = this.seconds - parseInt((nowTime-startTime) / 1000, 10);
                  this.timerCount = surplus <= 0 ? 0 : surplus;
             } else {
                  this.timerCount = this.seconds;
                  localStorage.setItem(`startTime${this.index}`, nowTime);
             }

             let timer = setInterval(() => {
                  if(this.timerCount > 0 && this.timerCount <= this.seconds) {
                      this.timerCount--;
                 } else {
                      localStorage.removeItem(`startTime${this.index}`);
                      clearInterval(timer);
                  }
             }, 1000);
         }
    },
    template: `<div class="box">倒计时 <span class="count-number">{{timerCount < 10 ? &#39;0&#39; + timerCount : timerCount}}</span> 秒</div>`
});

// Vue实例
new Vue({
    el: &#39;.wrap&#39;
});

## 相關推薦:

########################## #JS中的原型機制:實作建構函式與其實例的繼承與擴充############Vue子元件與父元件之間的通訊(附程式碼)#######

以上是VUE元件的實例:VUE元件如何實現倒數計時?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn