zoukankan      html  css  js  c++  java
  • vue倒计时(时分秒)组件

    <template>
        <span>{{hour? hourString+':'+minuteString+':'+secondString : minuteString+':'+secondString}}</span>
    </template>
    
    <script>
      export default {
        data () {
          return {
            hour: '',
            minute: '',
            second: '',
            timer: ''
          }
        },
        props: {
          remainTime: {    // 倒计时间总秒数
            default: ''
          }
        },
        mounted () {
          if (this.remainTime > 0) {
            this.hour = Math.floor((this.remainTime / 3600) % 24)
            this.minute = Math.floor((this.remainTime / 60) % 60)
            this.second = Math.floor(this.remainTime % 60)
            this.countDowm()
          }
        },
        methods: {
          countDowm () {
            var self = this
            clearInterval(this.timer)
            this.timer = setInterval(function () {
              if (self.hour === 0) {
                if (self.minute !== 0 && self.second === 0) {
                  self.second = 59
                  self.minute -= 1
                } else if (self.minute === 0 && self.second === 0) {
                  self.second = 0
                  self.$emit('countDowmEnd', true)
                  clearInterval(self.timer)
                } else {
                  self.second -= 1
                }
              } else {
                if (self.minute !== 0 && self.second === 0) {
                  self.second = 59
                  self.minute -= 1
                } else if (self.minute === 0 && self.second === 0) {
                  self.hour -= 1
                  self.minute = 59
                  self.second = 59
                } else {
                  self.second -= 1
                }
              }
            }, 1000)
          },
          formatNum (num) {
            return num < 10 ? '0' + num : '' + num
          }
        },
        computed: {
          hourString () {
            return this.formatNum(this.hour)
          },
          minuteString () {
            return this.formatNum(this.minute)
          },
          secondString () {
            return this.formatNum(this.second)
          }
        }
      }
    </script>
  • 相关阅读:
    HDU 1284 思维上的水题
    Buy Tickets POJ
    K-th Number Poj
    主席树入门+博客推荐
    Greg and Array CodeForces 296C 差分数组
    三连击 P1008 洛谷 python写法
    Lost Cows POJ 2182 思维+巧法
    Bash and a Tough Math Puzzle CodeForces 914D 线段树+gcd数论
    Can you answer these queries? HDU 4027 线段树
    敌兵布阵 HDU 1166 线段树
  • 原文地址:https://www.cnblogs.com/wy90s/p/10179507.html
Copyright © 2011-2022 走看看