欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > 微信开发 > 微信小程序编写tabBar模板,map组件markers属性动态初始化

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:740

高端HTML5响应式企业通用网

2020-05-06   浏览:521

html5响应式外贸网站英文版

2020-05-08   浏览:510

HTML5自适应律师工作室类网

2020-04-04   浏览:504

HTML5影视传媒文化公司类网

2020-05-12   浏览:502

微信小程序编写tabBar模板,map组件markers属性动态初始化

发布时间:2021-01-09  

一:编写tabBar模板众所周知,微信小程序的tabBar都是新开页面的,而微信文档上又表明了最多只能打开5层页面。这样就很容易导致出问题啦,假如我的tabBar有5个呢?下面是微信原话:一个应用 ...

 

 

一:编写tabBar模板

众所周知,微信小程序的tabBar都是新开页面的,而微信文档上又表明了最多只能打开5层页面。这样就很容易导致出问题啦,假如我的tabBar有5个呢?下面是微信原话:

一个应用同时只能打开5个页面,当已经打开了5个页面之后,wx.navigateTo不能正常打开新页面。请避免多层级的交互方式,或者使用wx.redirectTo

因此这几天想着根据微信tabBar数组来自定义模板供页面调用。不过我在list里面每个对象都增加了一个selectedColor和active属性,方便对每个tabBar当前页做样式,如果不传直接使用设置的selectedColor。因此这串数据只能设定在各个页面下,不能设定在公用的app.js配置文件下,稍微有点代码冗余,下次研究下怎么直接配置到app.js完善下。

只要新建一个tarBar.wxml模板页,然后引用模板的页面传入数据即可,代码如下:

<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=http://www.yiyongtong.com/archives/"{{item.selectedIconPath}}" wx:if="{{item.active}}"></image>  

      <image src=http://www.yiyongtong.com/archives/"{{item.iconPath}}" wx:if="{{!item.active}}"></image>  

      <text>{{item.text}}</text>  

    </navigator>  

    </block>  

  </view>  

</template>  

复制代码

接下来进行测试,首先是index.js的配置对象:

//配置tabBar  

    tabBar: {  

      "color": "#9E9E9E",  

      "selectedColor": "#f00",  

      "backgroundColor": "#fff",  

      "borderStyle": "#ccc",  

      "list": [  

        {  

          "pagePath": "/pages/index/index",  

          "text": "主页",  

          "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=http://www.yiyongtong.com/archives/"../../template/tabBar.wxml" />  

<template is="tabBar" data="{{tabBar: tabBar}}" />  

复制代码

接下来是mine.js文件引入配置对象:

//配置tabBar  

    tabBar: {  

      "color": "#9E9E9E",  

      "selectedColor": "#f00",  

      "backgroundColor": "#fff",  

      "borderStyle": "#ccc",  

      "list": [  

        {  

          "pagePath": "/pages/index/index",  

          "text": "主页",  

          "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=http://www.yiyongtong.com/archives/"../../template/tabBar.wxml" />