WeChat アプレットのカスタム タブバー コンポーネント

WeChat アプレットのカスタム タブバー コンポーネント

この記事では、WeChatアプレットのカスタムタブバーコンポーネントの具体的なコードを参考までに紹介します。具体的な内容は次のとおりです。

プロジェクトの要件により、独自のコンポーネントを作成する必要があります。

ステップ 1: App.json で tabBar を構成します。カスタム コンポーネントも構成する必要があります。"custom": true、リスト内のすべてのタブバー ページを構成します。

 "タブバー": {
 「カスタム」:true、
 "色": "赤",
 "選択された色": "#3b81d7",
 "背景色": "#000000",
 「リスト」: [{
 "pagePath": "pages/Role/InsureIndex/index",
 "テキスト": "ホーム"
 }, {
 "pagePath": "pages/Role/MineIndex/index",
 "テキスト": "ホーム"
 }, {
 "pagePath": "pages/index/userInfo/userInfo",
 "テキスト": "私の"
 }]
 },

ステップ 2:ページと同じディレクトリに新しいコンポーネントを作成します。フォルダー名は custom-tab-bar、カスタム コンポーネント ファイル名は index です。コンポーネントコードは以下のとおりです。理解できるはずです。

インデックス

成分({
 プロパティ: {},
 
 データ: {
 インデックス画像: "../static/images/tabBar/[email protected]",
 インデックス選択画像: "../static/images/tabBar/[email protected]",
 aboutUsImg: "../static/images/tabBar/[email protected]",
 aboutUsSelectImg: "../static/images/tabBar/[email protected]",
 _tabbat: ヌル、
 iPhoneX: 誤り、
 URL: ['/pages/Role/InsureIndex/index',
 '/pages/index/userInfo/userInfo'
 ]
 },
 添付() {
 var 自己 = これ
//これはビジネスコードなので、wx.getStorage({ を見る必要はありません。
 キー: 'userInfo',
 成功: 関数 (res) {
 定数{
  ユーザーロールコード
 } = res.データ
 (ユーザーロールコード == '50' || ユーザーロールコード == '70') {
  自己.setData({
  ["urls[0]"]: '/pages/Role/MineIndex/index'
  })
 } そうでない場合 (userRoleCode == '30' || userRoleCode == '35' || userRoleCode == '40') {
  自己.setData({
  ["urls[0]"]: '/pages/Role/InsureIndex/index'
  })
 }
 }
 })
 wx.getSystemInfo({
 成功(res) {
 コンソールログ(res.model)
 res.model.indexOf('iPhone X') >= 0 の場合 {
  自己.setData({
  iPhoneX: 本当
  })
 }
 }
 })
 },
 /**
 * コンポーネントメソッドのリスト */
 メソッド: {
 スイッチタップ: 関数(e) {
 var 自己 = これ
 var インデックス = e.currentTarget.dataset.index;
 var urls = self.data.urls
 wx.switchTab({
 url: urls[インデックス],
 })
 }
 }
})

インデックス.wxml

<div class="_tabbar {{iPhoneX?'_iPhoneX':''}}">
 <div class="titem {{_tabbat==0?'tCdk':''}}" data-index="0" bind:tap="switchTap">
 <画像 src="{{_tabbat==0?indexSelectImg:indexImg}}" />
 <b>ホーム</b>
 </div>
 <div class="titem {{_tabbat==1?'tCdk':''}}" data-index="1" bind:tap="switchTap">
 <画像 src="{{_tabbat==1?aboutUsSelectImg:aboutUsImg}}" />
 <b>私の</b>
 </div>
</div>

インデックス.wxss

._タブバー{
 幅: 100%;
 高さ: 120rpx;
 ディスプレイ: フレックス;
 アイテムの位置を中央揃えにします。
 背景: #fff;
 フォントサイズ: 26rpx;
 色: #999999;
 ボックスの影: 0px -7rpx 13rpx 0px rgba(193, 185, 204, 0.13);
}
 
._タブバー .titem {
 テキスト配置: 中央;
 幅: 50%;
}
 
._tabbar .titem イメージ {
 表示: ブロック;
 マージン: 自動;
 幅: 48rpx;
 高さ: 48rpx;
 下部マージン: 10rpx;
}
 
._タブバー .tCdk {
 色: #37ADFE;
}
 
._iPhoneX {
 高さ: 148rpx;
}

インデックス

{
 「コンポーネント」:true、
 "コンポーネントの使用": {}
}

上記はコンポーネント コードです。タブバーをクリックしてページにジャンプすると、タブバー コンポーネントが再読み込みされ、選択したスタイルが常にデフォルトになります。そのため、タブバーを使用するページの js ファイルで次の操作を行う必要があります。(「ホーム」ページを例に説明します)

onShow: 関数() {
 this.getTabBar().setData({
 _tabbat: 0
 })
 },

上記は完了ですが、オンラインで 2 つのタブバーが表示されることを知りました。ここでは表示されません (1 つはカスタム、もう 1 つは組み込み)。表示される場合は、app.js の onLaunch 関数に wx.hideTabBar() を追加して、組み込みのタブバーを非表示にします。

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

以下もご興味があるかもしれません:
  • WeChat ミニプログラム公式ダイナミックカスタムボトムタブバーの例
  • uni-app での WeChat アプレットのカスタム タブバーの適応の詳細な説明
  • WeChatアプレットカスタムタブバーコンポーネントの開発の詳細な説明
  • WeChatアプレットタブバーの上部境界線の色をカスタマイズする方法
  • WeChatアプレット開発におけるカスタムタブバーの実装
  • WeChat アプレットのカスタムスライドトップ TabBar タブでページ切り替え機能を実現する例
  • WeChatアプレットカスタムタブバーステップ練習記録
  • WeChat アプレットのカスタム タブバー custom-tab-bar 6s が出てこない解決策 (カバー ビューが互換性がない)
  • WeChat アプレットのカスタム メニュー スイッチ バー タブバー コンポーネントのコード例
  • WeChat アプレットカスタムタブバーステップ記録

<<:  Docker で既存のイメージに基づいて新しいイメージを構築する方法

>>:  Mac 向け MySQL のインストールと設定のチュートリアル

推薦する

JavaScriptでカレンダー効果を素早く実装

この記事では、カレンダー効果を素早く実現するためのJavaScriptの具体的なコードを例として紹介...

ServerSocketのデフォルトIPバインディングの実装プロセスの詳細な説明

開発中にサーバーを起動する必要がある場合、ローカルテストではポートを直接書き込み、実際の環境ではバイ...

Mysql テーブル、列、データベースの追加、削除、変更、クエリの問題の概要

以下は私がまとめた基本的なSQL知識です。主に参考資料として、また将来の他の初心者の助けとして、私自...

MySQLパラダイムの使用に関する詳細な説明

1. パラダイムこのパラダイムの英語名は Normal Form であり、1970 年代にリレーショ...

MySQLの構文、特殊記号、正規表現の詳細な説明

Mysql でよく使用される表示コマンド1. 現在のデータベース サーバー内のデータベースの一覧を表...

CSS でテキストカラーグラデーションを実装する 3 つの方法

Web フロントエンド開発のプロセスでは、UI デザイナーはグラデーション テキストを使用したデザイ...

MySQL を使用して Excel でデータ生成を完了する方法

Excel は、データ分析に最もよく使用されるツールです。この記事では、MySQL と Excel ...

js の Array.forEach でループを終了する方法の例

目次forEach() メソッドjs の Array.forEach のループから抜け出す方法解決:...

Javascriptでシンプルなナビゲーションバーを実装

この記事では、参考までに、シンプルなナビゲーションバーを実装するためのJavascriptの具体的な...

XHTML+CSS Web ページ作成における美しいスタイルシートの適用

これはかなり前に書かれた記事です。今となっては、その中の考え方は学ぶ価値があるように思えます。jb5...

ウェブページ上の小さなスペースに大きな画像を配置する方法

出典: www.bamagazine.comウェブページのバナー、ニュースの見出しの周りのスペース、...

MySQLの不合理なMaxIdleConnsにより接続が短くなる

1 背景最近、Shimo Document のオンライン ビジネスでパフォーマンスの問題が発生しまし...

JavaScriptはクリックトグル機能を実装します

この記事の例では、クリックして切り替える機能を実装するためのJavaScriptの具体的なコードを参...

Docker x509 の安全でないレジストリ問題を解決する

Docker をインストールした後、会社が構築したプライベート サーバー Harbor からプルしよ...

リモート Linux システムでポートが開いているかどうかを確認する 3 つの方法

これは、Linux 管理者だけでなく、私たち全員にとって非常に重要なトピックです。つまり、IT イン...