vue中多个倒计时实现代码实例


Posted in Javascript onMarch 27, 2019

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

vue中多个倒计时实现代码实例

很多时候我们做只有一个倒计时的情况比较多,比较简单只需要一个定时器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中多个倒计时实现详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Javascript 原型和继承(Prototypes and Inheritance)
Apr 01 Javascript
javascript 禁止复制网页
Jun 11 Javascript
检测input每次的输入是否合法遇到汉字输入就有问题
May 23 Javascript
js判断鼠标同时离开两个div的思路及代码
May 31 Javascript
Javascript中this关键字的一些小知识
Mar 15 Javascript
理解和运用JavaScript的闭包机制
Aug 13 Javascript
JS实现状态栏跑马灯文字效果代码
Oct 24 Javascript
基于JavaScript实现的顺序查找算法示例
Apr 14 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(一)
May 11 Javascript
Node调用Java的示例代码
Sep 20 Javascript
js使用ajax传值给后台,后台返回字符串处理方法
Aug 08 Javascript
vue 项目打包时样式及背景图片路径找不到的解决方式
Nov 12 Javascript
JavaScript偏函数与柯里化实例详解
Mar 27 #Javascript
vue实现鼠标移入移出事件代码实例
Mar 27 #Javascript
JavaScript惰性载入函数实例分析
Mar 27 #Javascript
微信小程序实现获取准确的腾讯定位地址功能示例
Mar 27 #Javascript
详解JS浏览器事件循环机制
Mar 27 #Javascript
详解如何更好的使用module vuex
Mar 27 #Javascript
原生js实现获取form表单数据代码实例
Mar 27 #Javascript
You might like
php带密码功能并下载远程文件保存本地指定目录 修改加强版
2010/05/16 PHP
PHP json_encode中文乱码问题的解决办法
2013/09/09 PHP
PHP邮箱验证示例教程
2016/06/01 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
2017/08/31 PHP
Jquery实战_读书笔记1—选择jQuery
2010/01/22 Javascript
JS 实现导航栏悬停效果(续)
2013/09/24 Javascript
jQuery实现复选框全选/取消全选/反选及获得选择的值
2014/06/12 Javascript
DOM基础教程之使用DOM
2015/01/19 Javascript
JavaScript输出当前时间Unix时间戳的方法
2015/04/06 Javascript
AngularJS入门教程之迭代器过滤详解
2016/08/18 Javascript
jQuery实现弹出窗口弹出div层的实例代码
2017/01/09 Javascript
Bootstrap风格的zTree右键菜单
2017/02/17 Javascript
vue.js+Echarts开发图表放大缩小功能实例
2017/06/09 Javascript
JS原生轮播图的简单实现(推荐)
2017/07/22 Javascript
Vue 后台管理类项目兼容IE9+的方法示例
2019/02/20 Javascript
webpack实践之DLLPlugin 和 DLLReferencePlugin的使用教程
2019/06/10 Javascript
js刷新页面location.reload()用法详解
2019/12/09 Javascript
vue实现数据控制视图的原理解析
2020/01/07 Javascript
Vue基于iview实现登录密码的显示与隐藏功能
2020/03/06 Javascript
vue 使用 v-model 双向绑定父子组件的值遇见的问题及解决方案
2021/03/01 Vue.js
[46:47]2014 DOTA2国际邀请赛中国区预选赛 DT VS HGT
2014/05/22 DOTA
Python/Django后端使用PIL Image生成头像缩略图
2019/04/30 Python
python pyinstaller 加载ui路径方法
2019/06/10 Python
python3爬取torrent种子链接实例
2020/01/16 Python
python实现登录与注册系统
2020/11/30 Python
FOREO斐珞尔官方旗舰店:LUNA露娜洁面仪
2018/03/11 全球购物
英国领先的名牌服装折扣零售商:Brown Bag Clothing
2019/01/08 全球购物
商场促销活动方案
2014/02/08 职场文书
2014两会学习心得:时代的发展
2014/03/17 职场文书
银行纠风工作实施方案
2014/06/08 职场文书
公司放假通知范文
2015/04/14 职场文书
考研英语辞职信
2015/05/13 职场文书
《比的意义》教学反思
2016/02/18 职场文书
CSS3鼠标悬浮过渡缩放效果
2021/04/17 HTML / CSS
简单了解 MySQL 中相关的锁
2021/05/25 MySQL
js基础语法与maven项目配置教程案例
2021/07/15 Javascript