1.0.1 • Published 5 years ago

inline-vuejs-countdown-timer v1.0.1

Weekly downloads
2
License
ISC
Repository
github
Last release
5 years ago

Vue-countdown-timer Component

Not my original work, just forked and updated for my needs!!!

一 Vue 2 countdown and timer component

Demo 📙中文文档 📙Changelog

Installation

npm i inline-vuejs-countdown-timer -S

Usage

Support

Supported PackageVersion
Vue2.5+

Install component and Usage

Import component

// global register at main.js
import VueCountdownTimer from 'vuejs-countdown-timer'
Vue.use(VueCountdownTimer)

Vue default template

<template>
    <vue-countdown-timer
      @start_callback="startCallBack('event started')"
      @end_callback="endCallBack('event ended')"
      :start-time="'2018-10-10 00:00:00'"
      :end-time="1481450115"
      :interval="1000"
      :start-label="'Until start:'"
      :end-label="'Until end:'"
      label-position="begin"
      :end-text="'Event ended!'"
      :day-txt="'days'"
      :hour-txt="'hours'"
      :minutes-txt="'minutes'"
      :seconds-txt="'seconds'">
    </vue-countdown-timer>
</template>

<script >
  export default {
    name: 'Timer',
    methods: {
      startCallBack: function (x) {
        console.log(x)
      },
      endCallBack: function (x) {
        console.log(x)
      }
    }
  }
</script>

Vue Customized template

<template>
    <vue-countdown-timer
      @start_callback="startCallBack('event started')"
      @end_callback="endCallBack('event ended')"
      :start-time="'2018-10-10 00:00:00'"
      :end-time="1481450115"
      :interval="1000"
      :start-label="'Until start:'"
      :end-label="'Until end:'"
      label-position="begin"
      :end-text="'Event ended!'"
      :day-txt="'days'"
      :hour-txt="'hours'"
      :minutes-txt="'minutes'"
      :seconds-txt="'seconds'">
      <template slot="start-label" slot-scope="scope">
        <span style="color: red" v-if="scope.props.startLabel !== '' && scope.props.tips && scope.props.labelPosition === 'begin'">{{scope.props.startLabel}}:</span>
        <span style="color: blue" v-if="scope.props.endLabel !== '' && !scope.props.tips && scope.props.labelPosition === 'begin'">{{scope.props.endLabel}}:</span>
      </template>
    
      <template slot="countdown" slot-scope="scope">
        <span>{{scope.props.days}}</span><i>{{scope.props.dayTxt}}</i>
        <span>{{scope.props.hours}}</span><i>{{scope.props.hourTxt}}</i>
        <span>{{scope.props.minutes}}</span><i>{{scope.props.minutesTxt}}</i>
        <span>{{scope.props.seconds}}</span><i>{{scope.props.secondsTxt}}</i>
      </template>
    
      <template slot="end-label" slot-scope="scope">
        <span style="color: red" v-if="scope.props.startLabel !== '' && scope.props.tips && scope.props.labelPosition === 'end'">{{scope.props.startLabel}}:</span>
        <span style="color: blue" v-if="scope.props.endLabel !== '' && !scope.props.tips && scope.props.labelPosition === 'end'">{{scope.props.endLabel}}:</span>
      </template>
      
      <template slot="end-text" slot-scope="scope">
        <span style="color: green">{{ scope.props.endText}}</span>
      </template>
    </vue-countdown-timer>
</template>

<script >
  export default {
    name: 'Timer',
    methods: {
      startCallBack: function (x) {
        console.log(x)
      },
      endCallBack: function (x) {
        console.log(x)
      }
    }
  }
</script>

Slots

Slot nameDescription
start-labelTimer start label
countdownTimer countdown label
end-labelTimer end label
end-textTimer ended text

start-label Scoped Slot

Slot scope nameDescription
startLabelEvent begin label text
endLabelEvent end label text
tipsTips true means countdown till start, false means countdown till end
labelPositionevent label position, 'begin' or 'end'

countdown Scoped Slot

Slot scope nameDescription
daysNumber of days till event
dayTxtDay label
hoursNumber of hours till event
hourTxtHours label
minutesNumber of minutes till event
minuteTxtMinutes label
secondsNumber of seconds till event
secondTxtSeconds label
showDaydisplay status of day countdown number and text
showHourdisplay status of hour countdown number and text
showMinutedisplay status of minute countdown number and text

end-label Scoped Slot

Slot scope nameDescription
startLabelEvent begin label text
endLabelEvent end label text
tipsTips true means countdown till start, false means countdown till end
labelPositionevent label position, 'begin' or 'end'

end-text Scoped Slot

Slot scope nameDescription
endTextTimer ended text

Props

start-time

  • type: Number|String
  • required : true

end-time

  • type: Number|String
  • required : true

interval

  • type: Number
  • required : false
  • default : 1000

start-label

  • type: String
  • required : false
  • default : ''

end-label

  • type: String
  • required : false
  • default : ''

label-position - begin (before countdown) / end (after countdown)

  • type: String
  • required : false
  • default : 'begin'

end-text

  • type: String
  • required : false
  • default : 'Event ended!'

day-txt - if pass null, this unit will be hidden

  • type: String
  • required : false
  • default : ':'

hour-txt - if pass null, this unit will be hidden

  • type: String
  • required : false
  • default : ':'

seconds-txt - if pass null, this unit will be hidden

  • type: String
  • required : false
  • default : ':'

seconds-fixed

  • type: String
  • required : false
  • default : ':'

show-zero - display status of 00

  • type: Boolean
  • required : false
  • default : true

Events

start_callback - Event started callback

  • type: Function
  • required : false

end_callback - Event ended callback

  • type: Function
  • required : false

Liscense

MIT License

Copyright (c) 2018 TriDiamond