亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

微信小程序tabBar模板用法實(shí)例分析【附demo源碼下載】

 更新時(shí)間:2017年11月28日 11:38:32   作者:草燈  
這篇文章主要介紹了微信小程序tabBar模板用法,結(jié)合具體實(shí)例形式分析了tabBar模板的定義、配置、引用等相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了微信小程序tabBar模板用法。分享給大家供大家參考,具體如下:

眾所周知,微信小程序的tabBar都是新開(kāi)頁(yè)面的,而微信文檔上又表明了最多只能打開(kāi)5層頁(yè)面。這樣就很容易導(dǎo)致出問(wèn)題啦,假如我的tabBar有5個(gè)呢?下面是微信原話:

一個(gè)應(yīng)用同時(shí)只能打開(kāi)5個(gè)頁(yè)面,當(dāng)已經(jīng)打開(kāi)了5個(gè)頁(yè)面之后,wx.navigateTo不能正常打開(kāi)新頁(yè)面。請(qǐng)避免多層級(jí)的交互方式,或者使用wx.redirectTo

因此這幾天想著根據(jù)微信tabBar數(shù)組來(lái)自定義模板供頁(yè)面調(diào)用。不過(guò)我在list里面每個(gè)對(duì)象都增加了一個(gè)selectedColor和active屬性,方便對(duì)每個(gè)tabBar當(dāng)前頁(yè)做樣式,如果不傳直接使用設(shè)置的selectedColor。因此這串?dāng)?shù)據(jù)只能設(shè)定在各個(gè)頁(yè)面下,不能設(shè)定在公用的app.js配置文件下,稍微有點(diǎn)代碼冗余,下次研究下怎么直接配置到app.js完善下。

只要新建一個(gè)tarBar.wxml模板頁(yè),然后引用模板的頁(yè)面?zhèn)魅霐?shù)據(jù)即可,代碼如下:

<template name="tabBar">
 <view class="flex-h flex-hsb tab-bar" style="color: {{tabBar.color}}; background: {{tarBar.backgroundColor}}; {{tabBar.position=='top'? 'top: 0' : 'bottom: 0'}}; {{tabBar.borderStyle? (tabBar.position=='top'? 'border-bottom: solid 1px '+tabBar.borderStyle + ';' : 'border-top: solid 1px '+tabBar.borderStyle + ';') : ''}}">
 <block wx:for="{{tabBar.list}}" wx:key="pagePath">
  <navigator url="{{item.pagePath}}" open-type="redirect" class="menu-item" style="{{item.active? 'color: '+(item.selectedColor? item.selectedColor : tabBar.selectedColor) : ''}}">
   <image src="{{item.selectedIconPath}}" wx:if="{{item.active}}"></image>
   <image src="{{item.iconPath}}" wx:if="{{!item.active}}"></image>
   <text>{{item.text}}</text>
  </navigator>
  </block>
 </view>
</template>

接下來(lái)進(jìn)行測(cè)試,首先是index.js的配置對(duì)象:

//配置tabBar
  tabBar: {
   "color": "#9E9E9E",
   "selectedColor": "#f00",
   "backgroundColor": "#fff",
   "borderStyle": "#ccc",
   "list": [
    {
     "pagePath": "/pages/index/index",
     "text": "主頁(yè)",
     "iconPath": "../../img/tabBar_home.png",
     "selectedIconPath": "../../img/tabBar_home_cur.png",
     //"selectedColor": "#4EDF80",
     active: true
    },
    {
     "pagePath": "/pages/village/city/city",
     "text": "目的地",
     "iconPath": "../../img/tabBar_village.png",
     "selectedIconPath": "../../img/tabBar_village_cur.png",
     "selectedColor": "#4EDF80",
     active: false
    },
    {
     "pagePath": "/pages/mine/mine",
     "text": "我的",
     "iconPath": "../../img/tabBar_mine.png",
     "selectedIconPath": "../../img/tabBar_mine_cur.png",
     "selectedColor": "#4EDF80",
     active: false
    }
   ],
   "position": "bottom"
  }

index.wxml引入模板:

<import src="../../template/tabBar.wxml" />
<template is="tabBar" data="{{tabBar: tabBar}}" />

接下來(lái)是mine.js文件引入配置對(duì)象:

//配置tabBar
  tabBar: {
   "color": "#9E9E9E",
   "selectedColor": "#f00",
   "backgroundColor": "#fff",
   "borderStyle": "#ccc",
   "list": [
    {
     "pagePath": "/pages/index/index",
     "text": "主頁(yè)",
     "iconPath": "../../img/tabBar_home.png",
     "selectedIconPath": "../../img/tabBar_home_cur.png",
     //"selectedColor": "#4EDF80",
     active: false
    },
    {
     "pagePath": "/pages/village/city/city",
     "text": "目的地",
     "iconPath": "../../../img/tabBar_village.png",
     "selectedIconPath": "../../../img/tabBar_village_cur.png",
     "selectedColor": "#4EDF80",
     active: false
    },
    {
     "pagePath": "/pages/mine/mine",
     "text": "我的",
     "iconPath": "../../img/tabBar_mine.png",
     "selectedIconPath": "../../img/tabBar_mine_cur.png",
     "selectedColor": "#4EDF80",
     active: true
    }
   ],
   "position": "bottom"
  }

mine.wxml引入模板:

<import src="../../template/tabBar.wxml" />
<template is="tabBar" data="{{tabBar: tabBar}}" />

最后演示如下:

方案二,我把配置數(shù)據(jù)統(tǒng)一放在app.js文件,通過(guò)點(diǎn)擊跳轉(zhuǎn)頁(yè)面后在把數(shù)據(jù)添加到當(dāng)前頁(yè)面實(shí)例上,具體做法如下:

1、app.js文件配置:

//app.js
var net = require('common/net');
var a_l, a_d = {}, a_cbSucc, a_cbSuccFail, a_cbFail, a_cbCom, a_h, a_m;
App({
 onLaunch: function () {
  var that = this;
 },
 //修改tabBar的active值
 editTabBar: function () {
  var _curPageArr = getCurrentPages();
  var _curPage = _curPageArr[_curPageArr.length - 1];<span style="font-family: Arial, Helvetica, sans-serif;">//相當(dāng)于Page({})里面的this對(duì)象</span>
  var _pagePath=_curPage.__route__;
  if(_pagePath.indexOf('/') != 0){
   _pagePath='/'+_pagePath;
  }
  var tabBar=this.globalData.tabBar;
  for(var i=0; i<tabBar.list.length; i++){
   tabBar.list[i].active=false;
   if(tabBar.list[i].pagePath==_pagePath){
    tabBar.list[i].active=true;//根據(jù)頁(yè)面地址設(shè)置當(dāng)前頁(yè)面狀態(tài)
   }
  }
  _curPage.setData({
   tabBar: tabBar
  });
 },
 globalData: {
  userInfo: null,
  //配置tabBar
  tabBar: {
   "color": "#9E9E9E",
   "selectedColor": "#f00",
   "backgroundColor": "#fff",
   "borderStyle": "#ccc",
   "list": [
    {
     "pagePath": "/pages/index/index",
     "text": "主頁(yè)",
     "iconPath": "/pages/templateImg/tabBar_home.png",
     "selectedIconPath": "/pages/templateImg/tabBar_home_cur.png",
     "selectedColor": "#4EDF80",
     active: false
    },
    {
     "pagePath": "/pages/village/city/city",
     "text": "目的地",
     "iconPath": "/pages/templateImg/tabBar_village.png",
     "selectedIconPath": "/pages/templateImg/tabBar_village_cur.png",
     "selectedColor": "#4EDF80",
     active: false
    },
    {
     "pagePath": "/pages/mine/mine",
     "text": "我的",
     "iconPath": "/pages/templateImg/tabBar_mine.png",
     "selectedIconPath": "/pages/templateImg/tabBar_mine_cur.png",
     "selectedColor": "#4EDF80",
     active: false
    }
   ],
   "position": "bottom"
  }
 }
})

2、index.js+mine.js+city.js頁(yè)面使用:

var App=getApp();
Page({
 data:{
  detail: {},
 },
 onLoad:function(options){
  App.editTabBar();//添加tabBar數(shù)據(jù)
  var that=this;
 }
})

最終演示和上圖一致!

附:完整demo代碼點(diǎn)擊此處本站下載

希望本文所述對(duì)大家微信小程序開(kāi)發(fā)有所幫助。

相關(guān)文章

  • layui問(wèn)題之自動(dòng)滾動(dòng)二級(jí)iframe頁(yè)面到指定位置的方法

    layui問(wèn)題之自動(dòng)滾動(dòng)二級(jí)iframe頁(yè)面到指定位置的方法

    今天小編就為大家分享一篇layui問(wèn)題之自動(dòng)滾動(dòng)二級(jí)iframe頁(yè)面到指定位置的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-09-09
  • JS入門必備之八種數(shù)據(jù)類型

    JS入門必備之八種數(shù)據(jù)類型

    Javascript腳本語(yǔ)言同其他語(yǔ)言一樣,有它自身的基本數(shù)據(jù)類型,表達(dá)式和算術(shù)運(yùn)算符及程序的基本程序框架,這篇文章主要給大家介紹了關(guān)于JS中八種數(shù)據(jù)類型的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-01-01
  • 通過(guò)實(shí)例解析json與jsonp原理及使用方法

    通過(guò)實(shí)例解析json與jsonp原理及使用方法

    這篇文章主要介紹了通過(guò)實(shí)例解析json與jsonp原理及使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Whatever:hover 無(wú)需javascript讓IE支持豐富偽類

    Whatever:hover 無(wú)需javascript讓IE支持豐富偽類

    絕大部分現(xiàn)代瀏覽器支持 css 中的 :hover 偽類選擇器,可以用于所有 html 元素。
    2010-06-06
  • JavaScript進(jìn)制數(shù)之間的互相轉(zhuǎn)換

    JavaScript進(jìn)制數(shù)之間的互相轉(zhuǎn)換

    這篇文章主要介紹了JavaScript進(jìn)制數(shù)之間的互相轉(zhuǎn)換,進(jìn)制轉(zhuǎn)換是人們利用符號(hào)來(lái)計(jì)數(shù)的方法,下文基于JavaScript實(shí)現(xiàn)進(jìn)制數(shù)之間的轉(zhuǎn)換,有一定的知識(shí)性參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • JavaScript對(duì)象引用與賦值實(shí)例詳解

    JavaScript對(duì)象引用與賦值實(shí)例詳解

    這篇文章主要介紹了JavaScript對(duì)象引用與賦值,結(jié)合實(shí)例形式分析了JavaScript對(duì)象引用及賦值的操作技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-03-03
  • “增強(qiáng)js程序代碼的健壯性”之我見(jiàn)大量示例代碼

    “增強(qiáng)js程序代碼的健壯性”之我見(jiàn)大量示例代碼

    “增強(qiáng)js程序代碼的健壯性”之我見(jiàn)大量示例代碼...
    2007-05-05
  • JavaScript中如何判斷對(duì)象是否為空的方法

    JavaScript中如何判斷對(duì)象是否為空的方法

    本文主要介紹了JavaScript中如何判斷對(duì)象是否為空的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • JS字符串常用操作方法實(shí)例小結(jié)

    JS字符串常用操作方法實(shí)例小結(jié)

    這篇文章主要介紹了JS字符串常用操作方法,結(jié)合實(shí)例形式總結(jié)分析了javascript字符串獲取、返回、拼接、替換、搜索、計(jì)算等相關(guān)操作技巧,需要的朋友可以參考下
    2019-06-06
  • JS庫(kù)之wow.js使用方法

    JS庫(kù)之wow.js使用方法

    近日,在做項(xiàng)目中,需要做到滾動(dòng)條滑到某個(gè)位置時(shí),才能顯示動(dòng)畫,網(wǎng)上查詢到有個(gè)wow.js可以達(dá)到要求,現(xiàn)在把使用方法做如下總結(jié),需要的朋友參考下吧
    2017-09-09

最新評(píng)論