中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vuejs是否可以做轉盤

發布時間:2021-09-24 10:39:10 來源:億速云 閱讀:175 作者:柒染 欄目:編程語言

這篇文章將為大家詳細講解有關vuejs是否可以做轉盤,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

vuejs 可以做轉盤嗎?

Vue中可配置的圓形抽獎轉盤組件

一、整個抽獎流程的思路分析:

  1. 點擊了轉盤正中間的指針(即開始抽獎按鈕),判斷是否可以轉動(具體邏輯封裝在canBeRotated()里--①當前擁有的抽獎次數是否大于0②現在是否正在轉動著(被鎖著)),判斷通過則進行下一步, 否則彈出相應提示。

  2. 獲取轉盤應該停止的位置,應該與后臺交互,但這里僅作演示用途, 本地隨機抽取0~5。

  3. 與后臺交互成功獲取到該停止的位置后,鎖定轉盤且減少抽獎次數。

  4. 告訴轉盤組件,開始轉動了,并且動畫結束后停在步驟2設置的地方。

  5. 轉盤轉動,停在步驟3設置的地方后再提示中獎,解鎖。

二、圓形抽獎轉盤組件需要做的事情

  1. 可以自定義每一格轉盤的背景顏色,外邊框的顏色。(turntableStyleOption屬性)

  2. 轉盤的大小與位置。(在調用時,給組件加個class,代碼里為turntable

  3. 自定義這個轉盤運轉起來要轉過的圈數。(rotateCircle屬性)

  4. 可以自定義運轉動畫的時長。(duringTime屬性)

  5. 通過接收到父組件傳遞過來的獎品信息(prizeData),顯示在每一格轉盤的位置。(計算要根據圓心旋轉的角度getRotateAngle()方法)

  6. 被父組件調用后就開始轉動,并在指定位置停下的方法(rotate),結束動畫后告訴父組件已停下。

  7. 獎品的名稱和圖片可以自定義樣式。

三、頁面預覽

vuejs是否可以做轉盤

四、基礎用法

  1. 引用

import roundTurntable from './components/roundTurntable';
  1. 聲明

components: {
  roundTurntable
},
  1. 調用

<round-turntable
  ref="roundTurntable"
  :prizeData="prizeData"
  :rotateCircle="rotateCircle"
  :duringTime="duringTime"
  :turntableStyleOption="turntableStyleOption"
  @endRotation="endRotation"
  class="turntable">
    <template slot="item" slot-scope="scope">
      <p class="turntable-name">{{ scope.item.prizeName }}</p>
      <p class="turntable-img">
        <img :src="scope.item.prizeImg">
      </p>
    </template>
</round-turntable>
data() {
  return {
    // 轉盤上的獎品數據
    prizeData: [
   {
     id: 1,
     prizeName: '2000元京東券',
     prizeImg: 'http://demo.sc.chinaz.net/Files/DownLoad/webjs1/201803/jiaoben5789/images/1.png',
   },
   {
     id: 2,
     prizeName: '300元京東券',
     prizeImg: 'http://demo.sc.chinaz.net/Files/DownLoad/webjs1/201803/jiaoben5789/images/7.png',
   },
   {
     id: 3,
     prizeName: '50個比特幣',
     prizeImg: 'http://demo.sc.chinaz.net/Files/DownLoad/webjs1/201803/jiaoben5789/images/3.png',
   },
   {
     id: 4,
     prizeName: '50元話費券',
     prizeImg: 'http://demo.sc.chinaz.net/Files/DownLoad/webjs1/201803/jiaoben5789/images/4.png',
   },
   {
     id: 5,
     prizeName: '100元話費券',
     prizeImg: 'http://demo.sc.chinaz.net/Files/DownLoad/webjs1/201803/jiaoben5789/images/5.png',
   },
   {
     id: 6,
     prizeName: '100個比特幣',
     prizeImg: 'http://demo.sc.chinaz.net/Files/DownLoad/webjs1/201803/jiaoben5789/images/6.png',
   }
  ],
  // 轉動的圈數
  rotateCircle: 6,
  // 轉動需要持續的時間(s)
  duringTime: 4.5,
  // 轉盤樣式的選項
  turntableStyleOption: {
    // 背景色
    prizeBgColors: ['#AE3EFF', '#4D3FFF', '#FC262C', '#3A8BFF', '#EE7602', '#FE339F'],
    // 轉盤的外邊框顏色
    borderColor: '#199301',
  },
 }
},
methods: {
  // 已經轉動完轉盤觸發的函數
   endRotation() {
      // 提示中獎
      alert(`恭喜您獲獎啦,您的獎品是:${this.prizeData[this.prizeIndex].prizeName}`);
   },
},
.turntable {
  position: absolute;
  left: calc(50% - 200px);
  top: calc(50% - 200px);
  width: 400px;
  height: 400px;
}
.turntable-name {
  /*background: pink;*/
  position: absolute;
  left: 10px;
  top: 20px;
  width: calc(100% - 20px);
  font-size: 26px;
  text-align: center;
  color: #fff;
}
  .turntable-img {
  position: absolute;
  /*要居中就要50% - 寬度 / 2*/
  left: calc(50% - 80px / 2);
  top: 60px;
  width: 80px;
  height: 80px;
  img {
    display: inline-block;
    width: 100%;
    height: 100%;
  }
}

五、roundTurntable組件的屬性說明

參數說明類型默認值
ref獲取這組件的dom節點,調用子組件的開始轉動動畫方法要用到this.$refs[refName].rotate(index)string
prizeData顯示在轉盤上的獎品數據array
rotateCircle轉盤要轉過的圈數number6
duringTime轉動需要持續的時間(單位為秒snumber4.5
turntableStyleOption轉盤的樣式選項(背景色、外邊框顏色)object{ prizeBgColors: ['#AE3EFF', '#4D3FFF', '#FC262C', '#3A8BFF', '#EE7602', '#FE339F'], borderColor: '#199301' }
class用來定義轉盤位置和大小的樣式string

六、roundTurntable組件的事件說明

事件名稱說明回調參數
endRotation轉盤停下來后觸發的事件回調

七、完整項目代碼

https://github.com/LiaPig/vue-round-turntable

關于vuejs是否可以做轉盤就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

漳浦县| 南阳市| 夏津县| 海淀区| 桦南县| 郴州市| 修文县| 卓尼县| 五家渠市| 余干县| 石渠县| 青海省| 横山县| 宜宾县| 荔浦县| 光泽县| 汉沽区| 防城港市| 商水县| 新沂市| 天全县| 正镶白旗| 大港区| 休宁县| 浦县| 邛崃市| 博客| 嘉荫县| 浦城县| 余干县| 泸水县| 达日县| 永登县| 江阴市| 长海县| 富裕县| 婺源县| 鹿邑县| 河津市| 克拉玛依市| 库伦旗|