讲师中心 微信公众号
AI工具推荐 视频效率加速

uni-app实现简单的倒计时弹窗 uni-app活动倒计时逻辑

陌磊同学_4046

陌磊同学_4046

发布时间:2026-05-10 07:57:26

|

474人浏览过

|

来源于php中文网

原创

uni-app倒计时弹窗需用setTimeout递归替代setInterval,每次校准剩余时间并以<=0触发弹窗,配合timer清理、isPopupShown防重复、服务端时间戳校准及跨平台兼容处理。

uni-app实现简单的倒计时弹窗 uni-app活动倒计时逻辑

uni-app里用setInterval实现倒计时弹窗的常见翻车点

直接在onShow里启动setInterval,不清理上一次定时器,会导致多个倒计时叠加执行——页面反复进出几次后,弹窗闪三遍、时间跳变、甚至卡死。必须手动维护定时器ID,并在onHideonUnloadclearInterval

  • 倒计时逻辑别写在data里直接绑定,要用computedwatch监听剩余秒数变化,避免频繁触发setData(小程序端性能敏感)
  • 服务端返回的是结束时间戳(如end_timestamp: 1735689600),前端每次取Date.now()对比,别用new Date().getTime()——虽等价但冗余
  • iOS真机上setInterval在后台可能被系统暂停,倒计时不准;建议用setTimeout递归替代,更可控

uni-app弹窗显示时机判断:用remainingTime <= 0还是remainingTime === 0

=== 0会漏掉弹窗:因为setTimeoutsetInterval无法保证精确到毫秒级触发,很可能从1直接跳到-1。必须用<= 0作为触发条件,且触发后立刻clearTimeout并重置状态。

uni-app
uni-app

uni-app 是基于 Vue 的跨端开发框架,适合开发 H5、App、小程序、鸿蒙和多端业务应用。

下载
  • 弹窗只应显示一次,加个isPopupShown: false标志位,显示前先判断
  • 倒计时为0后,UI上建议显示“活动已开始”或“活动已结束”,而不是继续渲染00:00:00
  • 如果弹窗内容含按钮(如“立即参与”),需确保点击后能正确跳转,且避免重复点击——加disabled或节流

跨平台兼容性:小程序/APP/H5倒计时行为差异

H5页面切到后台再切回,visibilitychange事件可监听,能暂停/恢复倒计时;但微信小程序没有该事件,onHide/onShow是唯一入口。APP端(Android/iOS)则可能因省电策略导致JS线程休眠,setTimeout延迟严重。

  • 统一用服务端下发的end_timestamp做计算,不要依赖本地计时累积误差
  • 每秒校准一次:在setTimeout回调开头重新计算remainingTime = Math.max(0, endTimestamp - Date.now())
  • 小程序真机调试时,务必关掉“调试基础库版本”自动更新,旧版基础库对setTimeout精度支持差

一个够用的倒计时+弹窗组合逻辑(Vue2语法示例)

data() {
  return {
    endTimestamp: 0,
    remainingTime: 0,
    timer: null,
    isPopupShown: false
  }
},
methods: {
  startCountdown() {
    if (!this.endTimestamp) return;
    this.clearCountdown();
    const tick = () => {
      this.remainingTime = Math.max(0, this.endTimestamp - Date.now());
      if (this.remainingTime <= 0) {
        this.showPopup();
        this.clearCountdown();
        return;
      }
      this.timer = setTimeout(tick, 300); // 每300ms校准,比1000ms更稳
    };
    tick();
  },
  showPopup() {
    if (this.isPopupShown) return;
    this.isPopupShown = true;
    uni.showModal({
      title: '活动即将开始',
      content: `剩余 ${this.formatTime(this.remainingTime)}`,
      showCancel: false
    });
  },
  formatTime(s) {
    const h = Math.floor(s / 3600);
    const m = Math.floor((s % 3600) / 60);
    const sec = s % 60;
    return `${h.toString().padStart(2, '0')}:${m.toString().padStart(2, '0')}:${sec.toString().padStart(2, '0')}`;
  },
  clearCountdown() {
    if (this.timer) {
      clearTimeout(this.timer);
      this.timer = null;
    }
  }
},
onShow() {
  this.startCountdown();
},
onHide() {
  this.clearCountdown();
},
onUnload() {
  this.clearCountdown();
}

注意formatTime里没用Math.round——秒数必须向下取整,否则最后一秒可能显示“00:00:01”然后突变为“活动已开始”,体验割裂。真实项目里,这个临界点的视觉反馈,比代码少几行更重要。

热门AI工具

更多
UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

LibLibAI
LibLibAI Hot

一款AI视频创作工具,主要用于国内领先的AI创意平台,以海量模型、低门槛操作与“创作-分享-商业化”生态,让小白与专业创作者都能高效实现图文乃至视频创意表达,适合需要提升相关任务效率的用户。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2003

2023.08.11

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

4243

2023.10.09

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

5370

2024.03.19

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

4818

2024.03.22

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

683

2024.05.22

AI视频生成软件推荐
AI视频生成软件推荐

本专题汇总了当前主流的AI视频生成软件推荐与排行榜单,涵盖seko、AniShort、剧云、Lovart、LiblibAI及立刻mv等热门工具。同时整理了各软件在文生视频、图生视频、时长限制、画质表现及免费额度等方面的差异对比,助您快速选对适合创作需求的AI视频生成工具。

120

2026.09.16

ai生成视频的工具免费版合集
ai生成视频的工具免费版合集

本专题汇总了当前免费AI生成视频工具的排行榜与推荐清单,涵盖seko、讯飞智作、AniShort及剧云、Lovart等多模型集成平台。同时整理了各工具的免费额度、输出时长、水印政策及适用场景差异,助您快速选择合适工具开启AI视频创作。

40

2026.09.16

Pandas时间序列分析与可视化报表
Pandas时间序列分析与可视化报表

本专题整理Pandas日期转换、时间索引、重采样、滚动窗口、时区处理、plot绘图、Styler表格样式和报表输出方法。

40

2026.09.16

Pandas数据筛选索引与清洗处理
Pandas数据筛选索引与清洗处理

本专题整理Pandas中的loc、iloc、条件筛选、query查询、缺失值处理、重复值删除、类型转换和字符串列清洗方法。

40

2026.09.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
uni-app从入门到实战教程
uni-app从入门到实战教程

共0课时 | 0人学习

uni-app x harmony开发指南
uni-app x harmony开发指南

共0课时 | 0人学习

uni-app鸿蒙运行和发行
uni-app鸿蒙运行和发行

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn