vuejsはターンテーブルを作ることができ、実装方法は、 1.抽選ボタンを作成する; 2.ターンテーブルが停止する位置を取得する; 3.背景とインタラクトする; 4.設定した場所に停止するアニメーション終了後のステップ 2; 5. 賞品獲得機能のロックを解除するためのプロンプトを設定します。
この記事の動作環境: Windows 7 システム、Vue バージョン 2.9.6、Dell G3 コンピューター。
vuejs でターンテーブルを作ることはできますか?
Vue で構成可能な円形宝くじターンテーブル コンポーネント
canBeRotated()
--① 現在所有している抽選の数が 0 より大きいかどうか ② 現在回転しているか (ロックされているか) )) を決定し、合格した場合は次のステップに進みます。そうでない場合は、対応するプロンプトがポップアップ表示されます。 turntableStyleOption
プロパティ)turntable
です) rotateCircle
プロパティ)duringTime
属性) prizeData
)を受け取り、各ターンテーブルの位置を表示します。 (円の中心を基準に回転する角度を計算する getRotateAngle()
メソッド) rotate
)、アニメーションの終了後に停止したことを親コンポーネントに伝えます。 import roundTurntable from './components/roundTurntable';
components: { roundTurntable },
<round-turntable> <template> <p>{{ scope.item.prizeName }}</p> <p> <img alt="vuejsはターンテーブルを作ることができますか?" > </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%; } }
説明 | タイプ | デフォルト値 | |
---|---|---|---|
このコンポーネントの DOM ノードを取得し、サブコンポーネントの回転開始アニメーション メソッドを呼び出すには、 | this.$refs[refName].rotate(index)
| string## を使用します。 #— | |
ホイールに表示される賞品データ | array | — | |
回転する円の数 | number | 6 |
|
回転にかかる時間(単位は秒 | s) 数値 |
4.5 |
|
ターンテーブル スタイル オプション (背景色、外枠色) | object | { プライズ BgColors: ['#AE3EFF', '# 4D3FFF'、'#FC262C'、'#3A8BFF'、'#EE7602'、'#FE339F']、borderColor: '#199301' } |
|
ターンテーブルの位置とサイズを定義するために使用されるスタイル | string | — |
説明 | コールバックパラメータ | |
---|---|---|
ターンテーブルの停止後にトリガーされるイベント コールバック | ##—#7. 完全なプロジェクト コード | ##https:/ / github.com/LiaPig/vue-round-turntable
以上がvuejsはターンテーブルを作ることができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。