WeChatミニプログラム抽選コンポーネントの使い方

WeChatミニプログラム抽選コンポーネントの使い方

WeChatコンポーネントの形式で提供されます。コンポーネント内部ではasync/awaitが使用されるため、WeChat開発者ツールの「詳細=>ローカル設定」で「コンパイルを強化してnpmを使用する」にチェックを入れてください。ミニプログラムでのnpmの使用については、WeChatミニプログラム-npmサポートを参照してください。

まず効果図を見てみましょう:

手順:

ステップ1:

依存関係をインストールするか、githuaにアクセスしてソースコードをダウンロードし、distディレクトリの下にlottary-turntableディレクトリをコピーします。

npm i 宝くじターンテーブル wx ミニプログラム用

ステップ2:

ページJSON構成

{
 "コンポーネントの使用": {
  "lottery-turntable":"lottery-turntable-for-wx-miniprogram/lottery_turntable/index"
 }
}

ステップ3:

データを準備し、イベント処理を追加する(コンポーネント ページ JS を使用)

定数データ = [{
 "id": "792085712309854208",
 "imgUrl": "../../images/icon.png",
 "title": "サンダー プラチナ メンバー マンスリー カード - 1"
}, {
 "id": "766410261029724160",
 "imgUrl": "../../images/icon.png",
 "title": "サンダー プラチナ メンバー マンスリー カード - 2"
}, {
 "id": "770719340921364480",
 "imgUrl": "../../images/icon.png",
 "title": "サンダー プラチナ メンバー マンスリー カード - 3"
}, {
 "id": "770946438416048128",
 "imgUrl": "../../images/icon.png",
 "title": "サンダー プラチナ メンバー マンスリー カード - 4"
}, {
 "id": "781950121802735616",
 "imgUrl": "../../images/icon.png",
 "title": "サンダー プラチナ メンバー マンスリー カード - 5"
}, {
 "id": "766411654436233216",
 "imgUrl": "../../images/icon.png",
 "title": "サンダー プラチナ メンバー マンスリー カード - 6"
}, {
 "id": "770716883860332544",
 "imgUrl": "../../images/icon.png",
 "title": "サンダー プラチナ メンバー マンスリー カード - 7"
}, {
 "id": "796879308510732288",
 "imgUrl": "../../images/icon.png",
 "title": "サンダー プラチナ メンバー マンスリー カード - 8"
}];
 
ページ({
 データ: {
  datas: datas, // データ PrizeId: '', // 優勝結果 ID は属性を通じてコン​​ポーネントに渡されます config: { // ターンテーブル構成は属性を通じてコン​​ポーネントに渡されます titleLength: 7
  }
 },
 /**
  * 回数不足のコールバック* @param e
  */
 onNotEnoughHandle(e) {
  wx.showToast({
   アイコン: 'なし'、
   タイトル: e.detail
  })
 },
 
 /**
  *抽選コールバック*/
 onLuckDrawHandle() {
  this.setData({
   賞品ID: this.data.datas[Math.floor(Math.random() * 10 % this.data.datas.length)].id
  });
 },
 
 /**
  * アニメーション回転完了コールバック */
 onLuckDrawFinishHandle() {
  定数データ = this.data.datas;
  constデータ = datas.find((item) => {
   item.id === this.data.prizeId を返します。
  });
  wx.showToast({
   アイコン: 'なし'、
   title: `${data.title} 優勝おめでとうございます`
  })
  this.setData({
   賞品ID: ''
  });
 }
})
 

ステップ4:

ページの使用状況

<宝くじターンテーブル
   データ="{{データ}}"
   賞品ID="{{prizeId}}"
   カウント="{{5}}"
   config="{{config}}"
   bindLuckDraw="onLuckDrawHandle"
   bindNotEnough="onNotEnoughHandle"
   bindLuckDrawFinish="onLuckDrawFinishHandle"
  </宝くじターンテーブル>

ステップ5:

コンポーネント構成項目を変更し(以下はデフォルトの構成です)、config属性を通じてjsオブジェクトを渡します。

/**
 * イーズ: 値は以下の通りです* 'linear' アニメーションの速度は最初から最後まで同じです* 'ease' アニメーションは低速で始まり、その後加速し、終了前に低速になります* 'ease-in' アニメーションは低速で始まります* 'ease-in-out' アニメーションは低速で始まり、終了します* 'ease-out' アニメーションは低速で終了します* 'step-start' アニメーションは最初のフレームで終了状態にジャンプし、終了まで続きます* 'step-end' アニメーションは開始状態のままで、最後のフレームで終了状態にジャンプします*/
// 以下はデフォルトの設定です let config = {
 サイズ: {
  幅: '572rpx',
  高さ: '572rpx'
 }, // ターンテーブルの幅と高さbgColors: ['#FFC53F', '#FFED97'], // ターンテーブル間隔の背景色は、複数の色の交互表示をサポートしますfontSize: 10, // テキスト サイズfontColor: '#C31A34', // テキストの色titleMarginTop: 12, // 最も外側のテキストの余白titleLength: 6 // 最も外側のテキストの番号iconWidth: 29.5, // アイコンの幅iconHeight: 29.5, // アイコンの高さiconAndTextPadding: 4, // 最も内側のテキストとアイコンの間の余白duration: 8000, // ターンテーブルの回転アニメーションdurationrate: 1.5, // 継続時間 s / 円の数で取得border: 'border: 10rpx solid #FEFAE4;', // ターンテーブルの境界ease: 'ease-out' // ターンテーブル アニメーション};

要約する

WeChatミニプログラム抽選コンポーネントに関するこの記事はこれで終わりです。WeChatミニプログラム抽選コンポーネントの関連コンテンツについては、123WORDPRESS.COMで過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後も123WORDPRESS.COMを応援していただければ幸いです。

以下もご興味があるかもしれません:
  • WeChatアプレットがフリップカード抽選アニメーションを実装
  • WeChatアプレットが抽選を実装
  • WeChatアプレットガチャ抽選機CSS3アニメーション実装詳細説明
  • WeChatアプレットが9マス抽選を実装
  • WeChatアプレットがマルチグリッド抽選アクティビティを実装
  • WeChatアプレットシェイク宝くじの簡単な実装コードの例
  • WeChatアプレット開発:Tmallスーパーマーケットの抽選を模した大型ターンテーブルの例
  • WeChatアプレットが回転灯式宝くじを実装

<<:  JS配列インデックス検出におけるデータ型の問題の詳細な説明

>>:  uniappのグローバル変数実装の詳細な説明

推薦する

ネイティブ js はカスタム スクロール バー コンポーネントを実装します

この記事の例では、カスタムスクロールバーコンポーネントを実装するためのjsの具体的なコードを参考まで...

Vueはカウントダウン機能を実装する

この記事の例では、カウントダウン機能を実装するためのVueの具体的なコードを参考までに共有しています...

Vueはカードフリップ効果を実現します

この記事では、カードフリップ効果を実現するためのVueの具体的なコードを例として紹介します。具体的な...

Linuxでホスト名を変更する方法

1. 現在のホスト名を表示する [root@fangjian ~]# ホスト名ctl 静的ホスト名:...

MySQL でのサブクエリの基本的な使用法

目次1. サブクエリの定義2. サブクエリの分類1. スカラーサブクエリ: 2. MySQLサブクエ...

CSS3 のテキストとフォントの新しい設定

テキストシャドウテキストシャドウ: 水平オフセット 垂直オフセット ぼかし色互換性: IE10+ &...

ブラウザのキャッシュを防ぐために、js または css の後に ?v= バージョン番号を追加します。

コードをコピーコードは次のとおりです。 <span style="font-size...

MySQL 最適化チュートリアル: 大規模なページングクエリ

目次背景制限の最適化最適化方法1. カバーインデックスを使用する2. サブクエリの最適化3. 遅延連...

VUEの基本を理解するのに役立つ記事

目次VUEとはVueのコアプラグインVueルーターヴュークスアクシオス要素UI Vue フロントエン...

データベースアカウントのパスワード暗号化の詳細な説明と例

データベースアカウントのパスワード暗号化の詳細な説明と例データベースアカウントとパスワードはデータベ...

NextCloud プライベート クラウド ストレージ ネットワーク ディスクの構築に関する詳細なチュートリアル

Nextcloud は、オープンソースで無料のプライベート クラウド ストレージ ネットワーク ディ...

Docker で複数の MySQL コンテナを作成して実行する方法の例

1. mysql/mysql-server:latestイメージを使用してMySQLインスタンスを素...

Json の長所と短所、使用方法の紹介

目次1. JSONとは何か1.1 配列リテラル1.2 オブジェクトリテラル1.3 混合リテラル1.4...

CentOS インストール mysql5.7 詳細チュートリアル

この記事では、参考までに、centOSにmysql5.7をインストールする詳細な手順を紹介します。具...

クラウドサーバーを購入し、Alibaba Cloud に Pagoda Panel をインストールする手順

アリババクラウドがサーバーを購入クラウドサーバーを購入し、サーバーバージョンとしてcentos 7....