vue實(shí)現(xiàn)簡(jiǎn)單轉(zhuǎn)盤(pán)抽獎(jiǎng)功能
本文實(shí)例為大家分享了vue實(shí)現(xiàn)簡(jiǎn)單轉(zhuǎn)盤(pán)抽獎(jiǎng)的具體代碼,供大家參考,具體內(nèi)容如下

樣式請(qǐng)大家忽略(自己調(diào)),主要看JS代碼實(shí)現(xiàn),點(diǎn)擊按鈕后調(diào)用start方法,判斷是否在轉(zhuǎn)動(dòng)狀態(tài),如果沒(méi)轉(zhuǎn)動(dòng)則調(diào)用go方法,go方法主要封裝了一次性定時(shí)器,是個(gè)遞歸函數(shù),調(diào)用go函數(shù)后即可實(shí)現(xiàn)抽獎(jiǎng)轉(zhuǎn)盤(pán)的效果了,詳細(xì)代碼如下:
注釋清晰哦
<template>
? <div class="home">
? ? <button @click="start">開(kāi)始</button>
? ? <div
? ? ? class="grid"
? ? ? v-for="(item, i) in arr"
? ? ? :key="i"
? ? ? :class="[bg == i + 1 ? 'active' : null]"
? ? ></div>
? </div>
</template>
<script>
export default {
? name: "Home",
? data() {
? ? return {
? ? ? // 標(biāo)記轉(zhuǎn)動(dòng)的位置
? ? ? bg: 1,
? ? ? // 循環(huán)的獎(jiǎng)品數(shù)組
? ? ? arr: [1, 2, 3, 4, 5],
? ? ? // 是否正在轉(zhuǎn)動(dòng)的標(biāo)記
? ? ? isSport: false,
? ? ? // 轉(zhuǎn)動(dòng)速度減慢
? ? ? reduce: 10,
? ? ? // 轉(zhuǎn)動(dòng)間隔時(shí)間
? ? ? startTime: 30,
? ? ? area:''
? ? };
? },
? methods: {
? ? start() {
? ? ? if (this.isSport == false) {
? ? ? ? this.isSport = true;
? ? ? } else {
? ? ? ? // 正在轉(zhuǎn)動(dòng)時(shí)點(diǎn)擊按鈕無(wú)效
? ? ? ? return;
? ? ? }
? ? ? // 模擬的設(shè)定轉(zhuǎn)動(dòng)的位置
? ? ? this.area= parseInt(Math.random()*4+1);
? ? ? this.go();
? ? },
? ? go() {
? ? ? setTimeout(() => {
? ? ? ? // 讓轉(zhuǎn)動(dòng)速度減慢
? ? ? ? this.startTime = this.startTime + this.reduce;
? ? ? ? this.bg = (this.bg % 5) + 1;//這個(gè)%時(shí)求余的意識(shí)哦
? ? ? ? // 如果達(dá)到這個(gè)條件則停止跳動(dòng)
? ? ? ? if (this.startTime >= 300 && this.bg == this.area) {
? ? ? ? ? // 標(biāo)記是否轉(zhuǎn)動(dòng)狀態(tài)
? ? ? ? ? this.isSport = false;
? ? ? ? ? // 重置轉(zhuǎn)動(dòng)間隔時(shí)間
? ? ? ? ? this.startTime = 30;
? ? ? ? ? return;
? ? ? ? }
? ? ? ? this.go();
? ? ? }, this.startTime);
? ? },
? },
};
</script>
<style scoped>
.grid {
? width: 50px;
? height: 50px;
? background: red;
? margin: 10px;
}
.active {
? background: blue;
}
</style>以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- vue實(shí)現(xiàn)大轉(zhuǎn)盤(pán)抽獎(jiǎng)功能
- Vue組件實(shí)現(xiàn)數(shù)字滾動(dòng)抽獎(jiǎng)效果
- vue實(shí)現(xiàn)宮格輪轉(zhuǎn)抽獎(jiǎng)
- VUE實(shí)現(xiàn)大轉(zhuǎn)盤(pán)抽獎(jiǎng)
- vue簡(jiǎn)單實(shí)現(xiàn)轉(zhuǎn)盤(pán)抽獎(jiǎng)
- vue組件實(shí)現(xiàn)移動(dòng)端九宮格轉(zhuǎn)盤(pán)抽獎(jiǎng)
- Vue.js實(shí)現(xiàn)大轉(zhuǎn)盤(pán)抽獎(jiǎng)總結(jié)及實(shí)現(xiàn)思路
- 基于VUE實(shí)現(xiàn)的九宮格抽獎(jiǎng)功能
- vue實(shí)現(xiàn)手機(jī)號(hào)碼抽獎(jiǎng)上下滾動(dòng)動(dòng)畫(huà)示例
- vue3實(shí)現(xiàn)抽獎(jiǎng)模板設(shè)置
相關(guān)文章
vue中實(shí)現(xiàn)點(diǎn)擊變成全屏的多種方法
這篇文章主要介紹了vue中實(shí)現(xiàn)點(diǎn)擊變成全屏的多種方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
vue實(shí)現(xiàn)子路由調(diào)用父路由的方法
這篇文章主要介紹了vue實(shí)現(xiàn)子路由調(diào)用父路由的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
vue插件mescroll.js實(shí)現(xiàn)移動(dòng)端上拉加載和下拉刷新
這篇文章主要介紹了vue插件mescroll.js實(shí)現(xiàn)移動(dòng)端上拉加載和下拉刷新,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-03-03
Vue封裝一個(gè)TodoList的案例與瀏覽器本地緩存的應(yīng)用實(shí)現(xiàn)
這篇文章主要介紹了Vue封裝一個(gè)TodoList的案例與瀏覽器本地緩存的應(yīng)用實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
vue @click與@click.native,及vue事件機(jī)制的使用分析
這篇文章主要介紹了vue @click與@click.native,及vue事件機(jī)制的使用分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04

