vue中多个倒计时实现代码实例
2019-04-22 18:02
936 查看
下面给出一个效果图,我今天要说的就是实现下图这种多个倒计时
很多时候我们做只有一个倒计时的情况比较多,比较简单只需要一个定时器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>
需要注意的是this.$set(obj,"djs",InitTime(obj.time)代码,在一个对象已经有了的情况下,假如此时object里没有djs这个元素,直接object.djs = "要赋的值"这样的做法是不正确的,可能会赋值成功,但是会出现很多奇怪的问题,推荐用
this.$set(object,'djs','要赋的值');
以上所述是小编给大家介绍的vue中多个倒计时实现详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:
相关文章推荐
- vue.js实现仿原生ios时间选择组件实例代码
- Vue.js实现输入框绑定的实例代码
- Spring boot + mybatis + Vue.js + ElementUI 实现数据的增删改查实例代码(一)
- Vue实现底部侧边工具栏的实例代码
- vue实现鼠标移入移出事件代码实例
- Vue组件实例间的直接访问实现代码
- vue 实现数字滚动增加效果的实例代码
- vue实现仿淘宝结账页面实例代码
- vue-router实现编程式导航的代码实例
- 基于jQuery实现美观且实用的倒计时实例代码
- vue2.0中vue-cli实现全选、单选计算总价格的实例代码
- Vue实现按钮旋转和移动位置的实例代码
- vue实现商品加减计算总价的实例代码
- Android 实现闪屏页和右上角的倒计时跳转实例代码
- vue.js通过路由实现经典的三栏布局实例代码
- JS实现十分钟倒计时代码实例
- vue+swiper实现组件化开发的实例代码
- vue-router 实现导航守卫(路由卫士)的实例代码
- vue实现自定义日期组件功能的实例代码
- vue+axios实现登录拦截的实例代码