Countdown.vue 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <template>
  2. <vue-countdown :time="time" :interval="1000" v-slot="{ days, hours, minutes, seconds }">
  3. <div class="time-box">
  4. <div class="time">
  5. <div class="time-number">{{ days }}</div>
  6. <div class="time-label">{{ t('Tage') }}</div>
  7. </div>
  8. <div class="time">
  9. <div class="time-number">{{ hours }}</div>
  10. <div class="time-label">{{ t('Stunden') }}</div>
  11. </div>
  12. <div class="time">
  13. <div class="time-number">{{ minutes }}</div>
  14. <div class="time-label">{{ t('Minuten') }}</div>
  15. </div>
  16. <div class="time">
  17. <div class="time-number">{{ seconds }}</div>
  18. <div class="time-label">{{ t('Sekunden') }}</div>
  19. </div>
  20. </div>
  21. </vue-countdown>
  22. </template>
  23. <style>
  24. .time-box{
  25. height: 500px;
  26. width: 500px;
  27. margin:0 auto;
  28. }
  29. @media (min-width: 1024px) {
  30. .time-box{
  31. padding-top:250px;
  32. width: 1000px;
  33. }
  34. }
  35. .time{
  36. height: 200px;
  37. width: 200px;
  38. margin: 25px;
  39. text-align: center;
  40. background-color: #6495ed;
  41. float: left;
  42. border-radius: 22px;
  43. }
  44. .time-number{
  45. font-size: 86px;
  46. font-weight: 600;
  47. line-height: normal;
  48. padding-top: 40px;
  49. }
  50. </style>
  51. <script lang="ts">
  52. import { useI18n } from 'vue-i18n'
  53. export default {
  54. data() {
  55. const now = new Date();
  56. const newYear = new Date(2025, 6, 11, 14, 30);
  57. return {
  58. time: newYear.getTime() - now.getTime(),
  59. }
  60. },
  61. setup() {
  62. const { t } = useI18n({
  63. inheritLocale: true
  64. })
  65. return{
  66. t
  67. }
  68. }
  69. };
  70. </script>