vue實(shí)現(xiàn)秒殺倒計(jì)時(shí)組件
本文實(shí)例為大家分享了vue實(shí)現(xiàn)秒殺倒計(jì)時(shí)組件的具體代碼,供大家參考,具體內(nèi)容如下
下面是使用Vue實(shí)現(xiàn)秒殺倒計(jì)時(shí)組件

開發(fā)思路
1.請求服務(wù)器獲取這一刻的服務(wù)器時(shí)間(統(tǒng)一以服務(wù)器時(shí)間為基準(zhǔn))
2.獲取用戶當(dāng)前電腦時(shí)間與服務(wù)器時(shí)間比對,獲取時(shí)間差。以當(dāng)前電腦時(shí)間-減去時(shí)間差為最終時(shí)間(定義為服務(wù)器當(dāng)前時(shí)間)
3.設(shè)置秒殺開始時(shí)間
4.秒殺時(shí)間與服務(wù)器當(dāng)前時(shí)間比對,獲取時(shí)間差(共X秒)
5.根據(jù)X秒計(jì)算出離秒殺開始時(shí)間還有x天x小時(shí)x分鐘x秒
代碼實(shí)現(xiàn)
下面代碼只展示第4、第5步驟
組件CountDown.vue
<template>
<div>
<input type="datetime-local" :min="currentTime" placeholder="請輸入秒殺開始時(shí)間" v-model="startTime">
<button @click="submit">開始計(jì)時(shí)</button>
</div>
<div>
<h1>{{ countDownTime }}</h1>
</div>
</template>
<script>
let timer = null;
let tipTextPrefix = '離秒殺開始還有: ';
import moment from "moment";
export default {
name: 'CountDown',
data() { return {
currentTime: moment().format('YYYY-MM-DDTHH:mm'), // 請使用步驟1-3計(jì)算出來的服務(wù)器時(shí)間
startTime: moment().format('YYYY-MM-DDTHH:mm'),
countDownTime: tipTextPrefix + '0天 0小時(shí) 0分鐘 0秒'
}},
methods: {
submit: function() {
const _this = this;
clearInterval(timer);
timer = setInterval(() => {
_this.countDownTime = _this.countDown();
}, 1000);
},
countDown: function() {
console.log(this.startTime);
const seconds = moment(this.startTime).diff(new Date, 'seconds');
if (seconds <= 0) {
clearInterval(timer);
return '秒殺已開始';
}
const second = seconds%60;
const minutes = (seconds-second) / 60;
const minute = minutes%60;
const hours = (minutes-minute) / 60;
const hour = hours%24;
const day = (hours-hour) / 24;
const res = tipTextPrefix + day + '天 '+ hour + '小時(shí) '+ minute + '分鐘 '+ second + '秒 ';
return res;
}
},
}
</script>
<style>
</style>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 解決vue項(xiàng)目本地啟動(dòng)時(shí)無法攜帶cookie的問題
- vue項(xiàng)目啟動(dòng)出現(xiàn)cannot GET /服務(wù)錯(cuò)誤的解決方法
- Vue修改項(xiàng)目啟動(dòng)端口號(hào)方法
- 詳解webpack打包vue項(xiàng)目之后生成的dist文件該怎么啟動(dòng)運(yùn)行
- 詳解VSCode配置啟動(dòng)Vue項(xiàng)目
- webpack+vue+express(hot)熱啟動(dòng)調(diào)試簡單配置方法
- vue-cli啟動(dòng)本地服務(wù)局域網(wǎng)不能訪問的原因分析
- 詳解vue express啟動(dòng)數(shù)據(jù)服務(wù)
- vue實(shí)現(xiàn)商品詳情頁功能之商品選項(xiàng)卡
- Vue2.0/3.0雙向數(shù)據(jù)綁定的實(shí)現(xiàn)原理詳解
- 如何啟動(dòng)一個(gè)Vue.js項(xiàng)目
相關(guān)文章
vue axios調(diào)用接口方法報(bào)錯(cuò)500 internal server err
前端使用axios 訪問后端接口時(shí)報(bào)錯(cuò),在瀏覽器中點(diǎn)擊紅色的報(bào)錯(cuò)數(shù)據(jù),本文給大家分享vue axios調(diào)用接口方法報(bào)錯(cuò)500 internal server error的兩種解決方法,感興趣的朋友一起看看吧2023-10-10
vue.config.js中配置分包策略及常見的配置選項(xiàng)
在Vue.js中分包(Code Splitting)是一種將應(yīng)用程序代碼拆分為不同的塊或包的技術(shù),從而在需要時(shí)按需加載這些包,下面這篇文章主要給大家介紹了關(guān)于vue.config.js中配置分包策略及常見的配置選項(xiàng)的相關(guān)資料,需要的朋友可以參考下2024-02-02

