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 のインストールと設定のチュートリアル

推薦する

Win10 に Linux ubuntu-18.04 デュアル システムをインストールする (インストール ガイド)

コンピューターに Linux Ubuntu システムをインストールしました。初めてインストールしまし...

JavaScriptはフォームデータの非同期取得を実装します

この記事では、フォームデータの非同期取得を実現するためのJavaScriptの具体的なコードを例とし...

よくある HTML タグの記述エラー

HTML Police がコードを調べて意味のないタグをすべて見つけ出すので、注意を払う必要がありま...

ページのキャッシュを防ぐソリューション

解決: <head> に次のコードを追加します。コードをコピーコードは次のとおりです。 ...

jsを使用してサーバーに写真をアップロードする

この記事の例では、参考のために画像をサーバーにアップロードするためのjsの具体的なコードを共有してい...

MySQL の問題を解決する: MSVCR120.dll が見つからないため、コードの実行を続行できません

1. 問題MySQL の初期化時に発生する問題は、次のとおりです。 1. 「MSVCR120.dll...

nginxリバースプロキシのyum設定の詳細な手順

パート0 背景社内のイントラネットサーバーは直接インターネットにアクセスすることはできませんが、外部...

JS でオブジェクトを作成する 4 つの方法

目次1. リテラル値でオブジェクトを作成する2. 新しいキャラクターを使ってオブジェクトを作成する3...

vitrualBox+ubuntu16.04 python3.6 最新チュートリアルと詳細な手順のインストール

最近ディープラーニングを学ぶためにUbuntu+Python 3.6バージョンを使う必要があるため、...

Squid を使用して http および https 用のプロキシ サーバーを構築する方法

nginx を導入した際に、フォワードプロキシの設定も nginx を使っていました。しかし、htt...

Navicatを使用してクラウドサーバーデータベースにリモート接続する方法

秘密鍵を開かずにリモート サーバーのデータベースに接続するのは非常に便利です。新しい接続でデータを入...

Vue のループフォーム項目例の詳細な説明

場合によっては、ユーザーがボタンをクリックして同様のフォームを追加し、クリックごとに 1 回追加でき...

Mysql+JavaSwing に基づくスーパーマーケット商品管理システムの設計と実装

目次1. 機能紹介2. キーコード2.1 ホームページの機能2.2 製品情報を追加する2.3 データ...

MySQL データベースの操作とデータ型

目次1. データベース操作1.1 データベースの表示1.2 データベースを作成する1.3 データベー...

要素 el-button ボタンコンポーネントの使用の詳細な説明

1. 背景ボタンは非常によく使われており、Element のボタン機能は非常に包括的です。この記事で...