ふるい抽選を実施するミニプログラム

ふるい抽選を実施するミニプログラム

この記事の例では、ふるい抽選を実装するためのミニプログラムの具体的なコードを参考までに共有しています。具体的な内容は次のとおりです。

レンダリング

<!--pages/shaizi/index.wxml-->
<ビュークラス="コンテナ">
  <view class="shaizi_box {{activeTrue}}" style="transform: rotateX({{rotateX}}deg) rotateY({{rotateY}}deg) rotateZ({{rotateZ}}deg);">
    <view class="shaizi">1</view>
    <view class="shaizi">2</view>
    <view class="shaizi">3</view>
    <view class="shaizi">4</view>
    <view class="shaizi">5</view>
    <view class="shaizi">6</view>
  </ビュー>
  <text class="view"></text>
  <button bindtap="gamePlay">プレイ</button>
</ビュー>
// ページ/シャイジ/index.js
var dingshiqi1 = 0;
var dingshiqi2 = 0;
var dingshiqi3 = 0;
ページ({
 
  /**
   * ページの初期データ */
  データ: {
    アクティブTrue:"アクティブ1",
    回転X:0,
    回転Y:0,
    回転Z:0,
  },
 
  /**
   * ライフサイクル機能 - ページの読み込みをリッスンする*/
  onLoad: 関数 (オプション) {
    
  },
  ゲームプレイ:関数(){
    _that = this とします。
    this.setData({
      アクティブTrue:"アクティブ2",
      回転X:0,
      回転Y:0,
      回転Z:0,
    })
    クリア間隔(dingshiqi3)
    _possible = [ とします。
      { 値: 1、x: 0、y: 0 },
      { 値: 6、x: 180、y: 0 },
      { 値: 3、x: 0、y: -90 },
      { 値: 4、x: 0、y: 90 },
      { 値: 5、x: -90、y: 0 },
      { 値: 2、x: 90、y: 0 },
     ]
    // 乱数を抽出する準備をする let _random = Math.floor(Math.random() * 6);
    dingshiqi1 = setTimeout(() => {
      _that.setData({
        回転X:360,
        回転Y:250,
        回転Z:0,
      })
     }, 0);
     dingshiqi2 = setTimeout(() => {
      _that.setData({
        回転X:_可能[_ランダム].x、
        rotateY:_posible[_random].y、
      })
      dingshiqi3 = setTimeout(() => {
        _that.setData({
          アクティブTrue:"アクティブ1",
        })
      }, 4500);
     }, 800);
  },
  /**
   * ライフサイクル関数 - ページの初期レンダリングの完了を待機します*/
  onReady: 関数 () {
 
  },
 
  /**
   * ライフサイクル機能 - モニターページ表示 */
  onShow: 関数() {
 
  },
 
  /**
   * ライフサイクル機能 - ページの非表示を監視する*/
  onHide: 関数 () {
 
  },
 
  /**
   * ライフサイクル機能 - ページのアンインストールを監視する*/
  onUnload: 関数 () {
 
  },
 
  /**
   * ページ関連のイベント処理関数 - ユーザーのプルダウンアクションをリッスンする */
  onPullDownRefresh: 関数 () {
 
  },
 
  /**
   * ページ上のボトムイベントを処理する関数*/
  onReachBottom: 関数 () {
 
  },
 
  /**
   * ユーザーは右上隅をクリックして共有します*/
  onShareAppMessage: 関数 () {
 
  }
})
/* ページ/shaizi/index.wxss */
@keyframes 回転 {
  に {
   変換: 回転X(360度) 回転Y(250度);
  }
 }
 @keyframes shaiziCss{
  20%
   変換: rotateX(20deg);
  }
  60%
   変換: 回転X(20度) 回転Y(200度);
  }
  100%{
   変換: rotateX(100deg) rotateY(1000deg) rotateZ(-100deg);
  }
 }
 .shaizi_box {
  幅: 200rpx;
  高さ: 200rpx;
  マージン: 200rpx 自動;
  位置: 相対的;
  変換スタイル: 3D を保持します。
  アニメーション期間: 3秒;
  アニメーションタイミング関数: linear;
  遷移: すべて 1;
 }
.shaizi_box.active1{
  アニメーション: 5 秒回転、線形 0 秒、無限交互 !important;
}
.shaizi_box.active2{
  アニメーション: shaiziCss 2s !important;
}
.shaizi_box .shaizi {
  幅: 200rpx;
  高さ: 200rpx;
  ディスプレイ: フレックス;
  位置: 絶対;
  左: 0;
  上: 0;
  境界線: 1px実線 #000;
  背景: rgb(253, 250, 250);
  境界線の半径: 20rpx;
  フォントサイズ: 100rpx;
  色: 赤;
  テキスト配置: 中央;
 }
 .shaizi:n番目の子(1) {
  コンテンツの中央揃え: 中央;
  アイテムの位置を中央揃えにします。
  変換: translateZ(100rpx);
 }
 .shaizi:n番目の子(2) {
  コンテンツの両端揃え: スペースを空ける;
  アイテムの位置を中央揃えにします。
  変換: 回転X(-90度) 移動Z(100rpx);
 }
 .shaizi:n番目の子(3) {
  コンテンツの両端揃え: スペースを空ける;
  アイテムの位置を中央揃えにします。
  flex-wrap: ラップ;
  変換: 回転Y(90度) 移動Z(100rpx);
 }
 .shaizi:n番目の子(4) {
  flex-wrap: ラップ;
  コンテンツの中央揃え: 中央;
  アイテムの位置を中央揃えにします。
  変換: 回転Y(-90度) 移動Z(100rpx);
 }
 .shaizi:n番目の子(5) {
  flex-wrap: ラップ;
  コンテンツの中央揃え: 中央;
  アイテムの位置を中央揃えにします。
  変換: rotateX(90deg) translateZ(100rpx);
 }
 .shaizi:n番目の子(6) {
  flex-wrap: ラップ;
  コンテンツの中央揃え: 中央;
  アイテムの位置を中央揃えにします。
  変換: rotateX(-180deg) translateZ(100rpx);
}

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • WeChatアプレットはふるいを振る効果を実現

<<:  MySQLdump コマンドを使用した MySQL データの移行

>>:  Linux にバイナリ MySQL をインストールして MySQL パスワードをクラックする方法

推薦する

ElementUIはカスケードセレクタを実装します

この記事の例では、カスケードセレクターを実装するためのelementUIの具体的なコードを参考までに...

LINUX でポートが占有されているかどうかを確認する方法

ポートが占有されているかどうかは、これまで一度もわかりませんでした。多くの人に尋ねて、ようやくわかり...

Java は Excel から MySQL にデータをインポートします

実際の業務では、Excel からデータベースにデータをインポートする必要がある場合があります。データ...

deepin apt コマンドを使用して最新バージョンの docker をインストールする方法

ステップ1: Ubuntuソースを追加するルートに切り替える suルートソフトウェアソースファイルの...

MySQL シリーズ 9 MySQL クエリ キャッシュとインデックス

目次チュートリアルシリーズ1. MySQL アーキテクチャクエリキャッシュキャッシュされないクエリ:...

JS addEventListener() およびattachEvent() メソッドは登録イベントを実装します

JavaScript の DOM イベント モデルでは、オブジェクトの addEventListen...

iframeを指すaタグのターゲットの名前とIDの違い

コードをコピーコードは次のとおりです。 <iframe id="myFrameId&...

Vueは単純なランダムロールコールを実行します

目次レイアウト部分: <div id="アプリ"> <p>...

mysqldump を使用した MySql のインポートおよびエクスポート方法の概要

データベースデータをエクスポートします:まずcmdを開いてMySQLのbinフォルダに入ります1. ...

Node.js での組み込みモジュールとカスタムモジュールの実装

1. コモンズCommonjsはNode.jsのカスタムモジュールですCommonjs 仕様は、Ja...

JavaScript setinterval 1秒遅延ソリューション

setinterval を使用すると、ページを開いた直後に 1 秒の遅延後に実行されることがわかりま...

Vueのコンポーネントのprops属性について詳しく説明します

目次質問1: 小道具は具体的にどのように使用されますか?原理は何ですか?下を見る質問 2: 年齢に ...

HTML テーブル マークアップ チュートリアル (40): ヘッダーの暗い境界線の色属性 BORDERCOLORDARK

テーブルヘッダーでは、暗い境界線の色を個別に定義できます。基本的な構文<TH 境界線の色を暗く...

HTML における iFrame タグの 2 つの使用法

最近、私は「ぶどうコレクション」というプロジェクトに取り組んでいます。簡単に言うと、Budou ペー...

JavaScript 正規表現の説明

目次1. 正規表現の作成2. 使用モード2.1 シンプルモードの使用2.2 特殊文字の使用3. 応用...