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のグローバル変数実装の詳細な説明

推薦する

dockerコンテナにvimをインストールするソリューション

目次物語の始まりvimをインストールし、hadoop-hive.envを編集します。不注意で回避しま...

Mysql5.7.14 Linux版のパスワードを忘れた場合の完璧な解決策

/etc/my.confファイルで、[mysqld]の下に次の行を追加します: skip-grant...

MySQLが2つのテーブルを関連付ける際のエンコードの問題と解決策

Mysqlが2つのテーブルを関連付けると、次のエラーメッセージが生成されます:照合順序の不正な組み合...

Centos7 で NIS を構成する詳細な手順

目次原理ネットワーク環境の準備インストール前の準備NIS サーバー操作NIS クライアント操作原理N...

CSS3 フィルターの違いと応用の詳しい説明:ドロップシャドウフィルターとボックスシャドウ

標準 CSS3 を使用して要素の影の効果を実現するには、2 つの手順があります。1 つ目は一般的なb...

CSSはリストのスタイルを設定し、ナビゲーションメニューの実装コードを作成します。

1. リストシンボルを設定するlist-style-type: attribute; //リストの...

マウスを動かしたときにセカンダリメニューバーを実装するために HTML+CSS を使用する例

この記事では、マウスを動かしたときにセカンダリ メニュー バーを実装するために HTML+CSS を...

MySQL マスタースレーブレプリケーションの詳細な分析

序文: MySQL では、マスター/スレーブ アーキテクチャが最も基本的かつ最も一般的に使用されるア...

Vueでeslintを使用する方法の詳細な説明

目次1. 説明2. 関連する依存パッケージをダウンロードする3. 設定ファイル .eslintrc....

CSS 命名: BEM、スコープ付き CSS、CSS モジュール、CSS-in-JS の説明

CSS の適用範囲はグローバルです。プロジェクトがどんどん大きくなり、参加する人が増えるにつれて、命...

Nodejs は readline を使用してコンテンツ入力を促すサンプルコード

目次序文1. batがjsを実行する2. ターミナルにバージョン番号を入力してパッケージ化コマンドを...

Centos8 で Docker を使用して Django プロジェクトをデプロイする詳細なチュートリアル

導入この記事では、django + uwsgi + nginx デプロイメントを使用して、Docke...

MySQL 接続例外とエラー 10061 の解決方法

MySQL は、スウェーデンの会社 MySQL AB によって開発されたリレーショナル データベース...

HTML タグのメタ概要、HTML5 のヘッド メタ属性の概要

序文metaはhtml言語のhead領域にある補助タグです。おそらく、これらのコードは不要だと思うで...

Navicat PremiumはMySQLデータベースを操作します(SQL文を実行します)

1. Navicatの紹介1. Navicat とは何ですか? Navicat は強力な MySQ...