怎样用vue实现一个简易的计时器?
Admin 2021-09-02 群英技术资讯 1412 次浏览
怎样用vue实现一个简易的计时器?计时器大家应该都模式,这篇文章我们就来尝试用用vue实现一个简单的计时器,实现效果和实现代码如下,感兴趣的朋友可以借鉴参考。
这里做的是点击按钮开始与结束倒计时的功能
<div class="time" v-if="rptType">{{str}}</div> <div class="receipt" :class="rptType?'jdz':'jiedan'" @click="receipt">开始</div>
data(){ return{ rptType: false,//状态 h:0,//定义时,分,秒,毫秒并初始化为0; m:0, ms:0, s:0, time:0, str:'', } }, mounted:function(){ this.$nextTick(function () {//整个视图都渲染完毕 }) }, methods:{ getTask: function(e){ this.taskType = e; }, //开始 receipt: function() { this.rptType = !this.rptType; if(this.rptType){ this.time=setInterval(this.timer,50); }else{ this.reset() } }, timer: function(){ //定义计时函数 this.ms=this.ms+50; //毫秒 if(this.ms>=1000){ this.ms=0; this.s=this.s+1; //秒 } if(this.s>=60){ this.s=0; this.m=this.m+1; //分钟 } if(this.m>=60){ this.m=0; this.h=this.h+1; //小时 } this.str =this.toDub(this.h)+":"+this.toDub(this.m)+":"+this.toDub(this.s)+""/*+this.toDubms(this.ms)+"毫秒"*/; // document.getElementById('mytime').innerHTML=h+"时"+m+"分"+s+"秒"+ms+"毫秒"; }, toDub: function(n){ //补0操作 if(n<10){ return "0"+n; } else { return ""+n; } }, reset: function(){ //重置 clearInterval(this.time); this.h=0; this.m=0; this.ms=0; this.s=0; this.str="00:00:00"; }, }
关于vue实现计时器就介绍到这,上述代码有一定的参考价值,感兴趣的朋友可以了解一下,希望能对大家有帮助,想要了解更多大家可以关注群英网络其它相关文章。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
文本主要给大家分享的是关于vue页面渲染中key的使用,下面有key的作用和用法介绍,以及实例,具有一定的借鉴价值,感兴趣的朋友可以参考学习。
filter返回一个包含通过提供函数实现测试的所有元素的新数组。filter不会改变原始数组,返回新数组。在首次调用callback之前,filter遍历的元素范围已经确定。
这篇文章主要给大家分享Promise使用方法,下文有详细的介绍Promise是什么、Promise的基本用法等等,对大家学习和理解Promise都有一定的帮助,感兴趣的朋友可以了解看看,接下来我们一起来学习一下吧。
webpack文件打包错误是什么情况?对于webpack文件打包错误的情况不少朋友都遇到过,但是对于如何解决一些朋友可能不是很了解,对此这篇文章小编就给大家分享一下webpack文件打包错误的原因以及解决方法,有需要的朋友可以参考。
篇文章主要给大家分享的是node.js的cors跨域配置实现的内容,本文有详细的介绍及代码,对大家学习和工作有一定的参考学习价值,因此分享给点家做个参考,需要的朋友可以了解看看。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008