当前位置:首页 > VUE

vue实现活动倒计时

2026-02-09 19:29:25VUE

使用计算属性实现倒计时

在Vue组件中定义活动结束时间,通过计算属性实时计算剩余时间

data() {
  return {
    endTime: new Date('2023-12-31 23:59:59').getTime()
  }
},
computed: {
  countdown() {
    const now = new Date().getTime()
    const distance = this.endTime - now

    const days = Math.floor(distance / (1000 * 60 * 60 * 24))
    const hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60))
    const minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60))
    const seconds = Math.floor((distance % (1000 * 60)) / 1000)

    return {
      days,
      hours,
      minutes,
      seconds,
      expired: distance < 0
    }
  }
}

使用定时器自动更新

在mounted生命周期中设置定时器,每秒更新一次倒计时

mounted() {
  this.timer = setInterval(() => {
    this.$forceUpdate()
  }, 1000)
},
beforeDestroy() {
  clearInterval(this.timer)
}

模板显示倒计时

在模板中显示格式化后的倒计时,并处理已过期情况

vue实现活动倒计时

<template>
  <div v-if="!countdown.expired">
    剩余时间: {{countdown.days}}天 {{countdown.hours}}小时 
    {{countdown.minutes}}分 {{countdown.seconds}}秒
  </div>
  <div v-else>
    活动已结束
  </div>
</template>

使用第三方库day.js优化

安装day.js处理时间格式更便捷

npm install dayjs

在组件中使用day.js

vue实现活动倒计时

import dayjs from 'dayjs'

computed: {
  formattedTime() {
    return dayjs(this.endTime).format('YYYY-MM-DD HH:mm:ss')
  }
}

响应式设计考虑

添加CSS样式使倒计时更美观

.countdown {
  font-size: 1.5rem;
  color: #ff4757;
  font-weight: bold;
  text-align: center;
  padding: 20px;
  background: #f1f2f6;
  border-radius: 8px;
}

移动端适配

添加viewport meta标签确保移动端正常显示

<meta name="viewport" content="width=device-width, initial-scale=1.0">

标签: 倒计时vue
分享给朋友:

相关文章

vue如何实现到期提醒

vue如何实现到期提醒

实现 Vue 到期提醒功能 使用计算属性计算剩余时间 在 Vue 组件中定义一个计算属性,计算目标日期与当前日期的差值。通过 Date 对象获取时间戳并计算剩余天数或小时数。 computed: {…

实现vue

实现vue

安装Vue.js 通过npm安装Vue.js是最常见的方式。确保已安装Node.js和npm,运行以下命令: npm install vue 或者使用CDN直接引入: <script src…

实现 vue ssr

实现 vue ssr

Vue SSR 实现方法 Vue SSR(Server-Side Rendering)通过服务器端渲染 Vue 应用,提升首屏加载速度和 SEO 友好性。以下是核心实现方法: 基础配置 安装必要依赖…

jq 实现 vue

jq 实现 vue

jq 实现 Vue 的核心功能 jq 是一个轻量级的 JavaScript 库,主要用于 DOM 操作和事件处理。虽然它不能完全替代 Vue,但可以通过一些技巧模拟 Vue 的核心功能,如数据绑定、事…

vue实现遮罩

vue实现遮罩

Vue 实现遮罩层的方法 在 Vue 中实现遮罩层可以通过多种方式完成,以下是几种常见的方法: 方法一:使用 v-show 或 v-if 控制显示 通过 Vue 的指令动态控制遮罩层的显示与隐…

vue实现剪辑

vue实现剪辑

Vue 实现视频剪辑功能 在Vue中实现视频剪辑功能通常需要结合HTML5的<video>元素和第三方库(如FFmpeg.js或Video.js)。以下是几种常见的实现方法: 使用FF…