<template>
<div class="timer">
<p>{{ formatTime }}</p>
<button @click="startTimer" v-if="!isTiming">开始计时</button>
<button @click="stopTimer" v-else>停止计时</button>
</div>
</template>
<script>
export default {
data() {
return {
isTiming: false,
time: 0,
timer: null
}
},
computed: {
formatTime() {
const minutes = Math.floor(this.time / 60)
const seconds = this.time % 60
return `${minutes}:${seconds < 10 ? '0' : ''}${seconds}`
}
},
methods: {
startTimer() {
this.isTiming = true
this.timer = setInterval(() => {
this.time++
}, 1000)
},
stopTimer() {
this.isTiming = false
clearInterval(this.timer)
}
}
}
</script>
<style>
.timer {
text-align: center;
font-size: 24px;
margin-top: 50px;
}
</style>
在Uni-app中实现计时器效果
蜕变菜鸟2024-08-27 17:46
相关推荐
毕设源码-朱学姐17 分钟前
【开题答辩全过程】以 基于HTML5的购物网站的设计与实现为例,包含答辩的问题和答案梦65028 分钟前
CSS 元素垂直水平居中的 8 种方法We་ct35 分钟前
LeetCode 68. 文本左右对齐:贪心算法的两种实现与深度解析ShoreKiten44 分钟前
ctfshow-web316前端 贾公子1 小时前
release-it 使用指南全栈技术负责人1 小时前
前端团队 AI Core Workflow:从心法到落地前端 贾公子2 小时前
深入浅出 CSS 属性:pointer-events: none曾几何时`2 小时前
二分查找(十)1146. 快照数组 pair整理夏河始溢2 小时前
一八二、webpack、grunt、gulp、rollup、parcel、vite 对比介绍