下面给出一个效果图,我今天要说的就是实现下图这种多个倒计时

很多时候我们做只有一个倒计时的情况比较多,比较简单只需要一个定时器setInterval,算出来赋赋值就好,

但是需要多个倒计时的时候我们就要考虑把倒计时封装成通用的方法了

拿我自己的vue项目举个例

<!-- template -->
    <div v-for="(item,index) in list" :key="index" class="act_item">
        <h1>{{ item.title }}</h1>
        <img :src="item.pic" alt="">
        <div class="act_info">
            <h2><span>{{ item.count }}</span>个视频</h2>
            <div class="time">倒计时:{{ item.djs }}</div>
            <div class="clear"></div>
        </div>
    </div>
<script>
function InitTime(endtime){
    var dd,hh,mm,ss = null;
    var time = parseInt(endtime) - new Date().getTime();
    if(time<=0){
        return '结束'
    }else{
        dd = Math.floor(time / 60 / 60 / 24);
        hh = Math.floor((time / 60 / 60) % 24);
        mm = Math.floor((time / 60) % 60);
        ss = Math.floor(time  % 60);
        var str = dd+"天"+hh+"小时"+mm+"分"+ss+"秒";
        return str;
    }
}
export default {
    data () {
    return {
            active: 'tab-container1',
            pinkFont:true,
            // 上拉刷新、下拉加载
            allLoaded: false, //如果为true,禁止上拉刷新
            autoFill: false, //取消自动填充,
            list: [],
        }
      },
    created() {
        var ssss = [
            {"title": "小心愿,大梦想","pic":"../../assets/img/new/act1.jpg","count":"34","time":"1525293470350"},
            {"title": "杭州国际时装周童模招募","pic":"../../assets/img/new/act2.jpg","count":"36","time":"1525293470350"},
            {"title": "怪兽bobo全线代言火爆杭城的联名秀招募童模啦!","pic":"../../assets/img/new/act3.jpg","count":"74","time":"1529253270350"},
            {"title": "汉风唐韵 、别","pic":"../../assets/img/new/act2.jpg","count":"266","time":"1525753270350"},
            {"title": "听说你们想和明星超模同台“PK”?","pic":"../../assets/img/new/act1.jpg","count":"97","time":"1525253270450"},
        ];
        ssss.map( (obj,index)=>{
            this.$set(
                obj,"djs",InitTime(obj.time)
            );
        })
        this.list = ssss;
    },
    mounted() {
        setInterval( ()=> {
            for (var key in this.list) {
                var aaa = parseInt( this.list[key]["time"] );
                var bbb = new Date().getTime();
                var rightTime = aaa - bbb;
                if (rightTime > 0) {
                    var dd = Math.floor(rightTime / 1000 / 60 / 60 / 24);
                    var hh = Math.floor((rightTime / 1000 / 60 / 60) % 24);
                    var mm = Math.floor((rightTime / 1000 / 60) % 60);
                    var ss = Math.floor((rightTime / 1000) % 60);
                }
                this.list[key]["djs"] = dd + "天" + hh + "小时" + mm + "分" + ss + "秒";
            }
        }, 1000);
 
    },
    methods: {
 
    }
}
</script>
需要注意的是那个标红的代码,在一个对象已经有了的情况下,假如此时object里没有djs这个元素,直接object.djs = "要赋的值"这样的做法是不正确的,可能会赋值成功,但是会出现很多奇怪的问题,推荐用

this.$set(object,'djs','要赋的值');

vue中多个倒计时实现相关推荐

  1. vue中的倒计时跳转页面问题和axios网络请求this作用域问题

    一.前言 这两个是在日常开发中碰到的问题,网上都能查得到答案,但是我怕自己会忘记,姑且记录一下用作笔记吧. 二.vue倒计时跳转问题 1.案例 比如我们在一次网络请求结束之后,如果返回结果是成功,则倒 ...

  2. vue中通过定时器设置倒计时,5秒倒计时

    前言:有时候,在项目中,我们经常需要设置简单的倒计时功能,这个可以通过定时器来实现. 一.设置div显示倒计时数字 <div class="countCircle">& ...

  3. vue中实现60秒倒计时

    vue中实现60秒倒计时 <span>{{count}} s</span> data中: data(){return{show: true,count: '',timer: n ...

  4. 在vue中制作倒计时功能

    在vue中制作简单的倒计时 倒计时的核心是通过递归来时实现 定时器 所以在方法中使用setTimeout 就行了 <script src="https://cdn.jsdelivr.n ...

  5. vue中倒计时(日,时,分,秒)的计算和当前时间计时读秒

    在了解倒计时原理之前先了解一些时间戳 例如:12小时转换为时间戳 12✖️60✖️60✖️1000 第一个60单位分钟 第二个60单位是秒 第三个1000单位毫秒 未来某天的倒计时 <!DOCT ...

  6. 记一次 Vue 移动端活动倒计时优化

    前言 通常写倒计时效果,用的是 setInterval,但这会引发一些问题,最常见的问题就是定时器不准. 如果只是普通的动画效果,倒也无所谓,但倒计时这种需要精确到毫秒级别的,就不行了,否则活动都结束 ...

  7. 原生js 或vue实现60分钟倒计时案例

    使用场景类似于 订单倒计时,或答题倒计时,代码如下 在Vue中封装了如下的方法 data () {return {countdownTxt:'',//要显示的倒计时文案};}, // 定义一个方法 方 ...

  8. 【Web通信】WebSocket详解:WebSocket是什么?如何使用WebSocket?在Vue中封装WebSocket(心跳监测)。nginx配置websocket。

    一.WebSocket相关定义 1. WebSocket定义 WebSocket 是一种基于TCP的全双工通信协议,它提供了一种在浏览器和服务器之间建立持久连接来交换数据的方法.数据可以作为" ...

  9. html使用vue实现秒表,vue中使用时间计时器

    vue中我们会使用各种倒计时的方法这里就为大家提供一个计时器的方法, 话不多说代码走起: 点击 暂停 重置 继续 {{str}} export default { name:"homepag ...

最新文章

  1. 详细故障排除步骤:针对 Azure 中到 Windows VM 的远程桌面连接问题
  2. 医疗机器人等高智能医疗设备成未来发展重点领域
  3. Java中@Override的作用
  4. 【转】HTML全解(1)
  5. mapper中 <include refid=“XXX“></include>标签 <sql id=“XXX“>标签
  6. 有效用例分析阅读笔记一
  7. java 冒泡 二分法,日常总结---冒泡排序,二分法算法 面试题
  8. 详解公用表表达式(CTE)
  9. sql CHECK ,UNIQUE 约束(mysql)
  10. java get请求简洁,java 实现 HTTP请求(GET、POST)的方法
  11. html 内嵌xml数据库,是否可以在SQLite数据库中存储XML/HTML文件?
  12. 【Flink】介绍Flink中状态一致性的保证
  13. 玩花花肠子做不成生意
  14. 转:使用NSOperationQueue简化多线程开发
  15. 红米pro android o刷机,红米Pro如何刷机?你可以通过这两种方法获取root权限!
  16. Win11的几个实用技巧系列之不能玩植物大战僵尸、如何彻底删除360所有文件
  17. elasticsearch彻底删除文件命令行操作
  18. oracle循环数据字典,Oracle DUL工作原理和技术实现
  19. Android集成极光聊天SDK
  20. 修改ardupilotmega.h中MAV_CMD联合体中的命令定义,增加MAV_CMD_LED_CONTROL命令

热门文章

  1. 苹果cmsv10简洁清新漂亮wap+pc自适应大屏免费模板
  2. 质量frr_【转】 FAR FRR EER 区别
  3. 有序列表、无序列表、定义列表
  4. 坐标系中求三角形面积的三种方法(鞋带公式、海伦公式、三角形面积公式)
  5. 总结《Java中高级程序员必备核心知识》,令人犹如醍醐灌顶
  6. math question
  7. linux命令和shell语言的区别,shell脚本语言与linux命令的联系与区别
  8. vmware windows 挂载扩展硬盘 + 共享文件夹
  9. C++ 多线程:std::future
  10. 阿里巴巴网站的搜索引擎优化案例分析