微信小程序实现自定义底部导航


Posted in Javascript onNovember 18, 2020

本文实例为大家分享了微信小程序实现底部导航的具体代码,供大家参考,具体内容如下

微信小程序实现自定义底部导航

建一个tabbar.wxml组件

<template name="tabBar">
 <view class="tab-bar" style="color: {{tabBar.color}}; background: {{tabBar.backgroundColor}}; {{tabBar.position=='top'? 'top: 0' : 'bottom: 0'}};">
 <block wx:for="{{tabBar.list}}" wx:key="pagePath">
 <navigator hover-class="none" url="{{item.pagePath}}" open-type="redirect" class="tabbar_item {{item.clas}}" style="{{item.active? 'color: '+(item.selectedColor? item.selectedColor : tabBar.selectedColor) : ''}};position:relative;">
 <image src="{{item.selectedIconPath}}" wx:if="{{item.active&&item.selectedIconPath}}" class="img"></image>
 <image src="{{item.iconPath}}" wx:if="{{!item.active&&item.iconPath}}" class="img"></image>
 <image src="{{item.logo}}" wx:if="{{item.logo}}" style="width:110rpx;height:110rpx;border:10rpx solid #ffffff;border-radius:50%;position:absolute;top:-50%;left:-40%,"></image>
 <text class="tabbar_text" wx:if="{{item.text}}">{{item.text}}</text>
 </navigator>
 </block>
 </view>
</template>

app.js中定义

editTabBar: function () {
 //使用getCurrentPages可以获取当前加载中所有的页面对象的一个数组,数组最后一个就是当前页面。

 var curPageArr = getCurrentPages(); //获取加载的页面
 var curPage = curPageArr[curPageArr.length - 1]; //获取当前页面的对象
 var pagePath = curPage.route; //当前页面url
 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; //根据页面地址设置当前页面状态 
 }
 }
 curPage.setData({
 tabBar: tabBar
 });
 },
 globalData: {
 tabBar: {
 "color": "#B0B6B8",
 "selectedColor": "#4877BD",
 "backgroundColor": "#ffffff",
 "borderStyle": "#ccc",
 "list": [{
 "pagePath": "/pages/messagelist/messagelist",
 "text": "消息",
 "iconPath": "/img/message-1.png",
 "selectedIconPath": "/img/message-2.png",
 "selectedColor": "#4877BD",
 "clas": "menu-item",
 active: false
 },
 {
 "pagePath": "/pages/salefriend/salefriend",
 "text": "名片",
 "iconPath": "/img/card-1.png",
 "selectedIconPath": "/img/card-2.png",
 "selectedColor": "#4877BD",
 "clas": "menu-item",
 active: false
 },
 {
 "pagePath": "/pages/customnav/customnav",
 "text": "",
 // "iconPath": "/img/gifts.png",
 // "selectedIconPath": "/img/gifts.png",
 "logo":"/img/logo.png",
 "selectedColor": "#4877BD",
 "clas": "menu-item",
 islogo:true,
 active: false
 },
 {
 "pagePath": "/pages/salescircle/salescircle",
 "text": "发现",
 "iconPath": "/img/discover-1.png",
 "selectedIconPath": "/img/discover-2.png",
 "selectedColor": "#4877BD",
 "clas": "menu-item",
 active: false
 },
 {
 "pagePath": "/pages/mine/mine",
 "text": "我的",
 "iconPath": "/img/mine-1.png",
 "selectedIconPath": "/img/mine-2.png",
 "selectedColor": "#4877BD",
 "clas": "menu-item",
 active: false
 }
 ],
 "position": "bottom"
 },
 },

在需要用的导航的页面的wxml

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

在需要用的导航的页面的js中

const app = getApp();
 onShow: function () {
 app.editTabBar(); //显示自定义的底部导航

 },

为大家推荐现在关注度比较高的微信小程序教程一篇:《微信小程序开发教程》小编为大家精心整理的,希望喜欢。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
一款js和css代码压缩工具[附JAVA环境配置方法]
Apr 16 Javascript
在网页中使用document.write时遭遇的奇怪问题
Aug 24 Javascript
收集的10个免费的jQuery相册
Feb 26 Javascript
jquery实现隐藏与显示动画效果/输入框字符动态递减/导航按钮切换
Jul 01 Javascript
Enter转换为Tab的小例子(兼容IE,Firefox)
Nov 14 Javascript
JS获取当前日期和时间的简单实例
Nov 19 Javascript
js data日期初始化的5种方法
Dec 29 Javascript
7个让JavaScript变得更好的注意事项
Jan 28 Javascript
浅谈React深度编程之受控组件与非受控组件
Dec 26 Javascript
小程序实现留言板
Nov 02 Javascript
JavaScript简单编程实例学习
Feb 14 Javascript
Vue中使用better-scroll实现轮播图组件
Mar 07 Javascript
微信小程序绘制半圆(弧形)进度条
Nov 18 #Javascript
微信小程序实现加入购物车滑动轨迹
Nov 18 #Javascript
Map与WeakMap类型在JavaScript中的使用详解
Nov 18 #Javascript
解决js中的setInterval清空定时器不管用问题
Nov 17 #Javascript
springboot+vue实现文件上传下载
Nov 17 #Vue.js
vue 表单输入框不支持focus及blur事件的解决方案
Nov 17 #Vue.js
解决vue elementUI 使用el-select 时 change事件的触发问题
Nov 17 #Vue.js
You might like
第八节--访问方式
2006/11/16 PHP
给php新手谈谈我的学习心得
2007/02/25 PHP
PHP函数strip_tags的一个bug浅析
2014/05/22 PHP
php禁止浏览器使用缓存页面的方法
2014/11/07 PHP
phpstorm 配置xdebug的示例代码
2019/03/31 PHP
YII2.0框架行为(Behavior)深入详解
2019/07/26 PHP
PHP中的异常处理机制深入讲解
2020/11/10 PHP
JS提交并解析后台返回的XML的代码
2008/11/03 Javascript
JavaScript实现网页图片等比例缩放实现代码及调用方式
2013/02/25 Javascript
用js调用迅雷下载代码的二种方法
2013/04/15 Javascript
js判断字符长度以及中英文数字等
2013/12/31 Javascript
JavaScript实现跨浏览器的添加及删除事件绑定函数实例
2015/08/04 Javascript
jquery Easyui快速开发总结
2015/08/20 Javascript
全面总结Javascript对数组对象的各种操作
2017/01/22 Javascript
Angular JS 生成动态二维码的方法
2017/02/23 Javascript
js数组实现权重概率分配
2017/09/12 Javascript
解决vue项目报错webpackJsonp is not defined问题
2018/03/14 Javascript
JavaScript禁用右键单击优缺点分析
2019/01/20 Javascript
vue使用高德地图根据坐标定位点的实现代码
2019/08/22 Javascript
layer弹出层显示在top顶层的方法
2019/09/11 Javascript
详解JavaScript的this指向和绑定
2020/09/08 Javascript
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
python中sets模块的用法实例
2014/09/30 Python
python将txt文件读入为np.array的方法
2018/10/30 Python
python 哈希表实现简单python字典代码实例
2019/09/27 Python
django框架基于queryset和双下划线的跨表查询操作详解
2019/12/11 Python
Python 解析xml文件的示例
2020/09/29 Python
naturalizer加拿大官网:美国娜然女鞋
2017/04/04 全球购物
上班睡觉检讨书
2014/01/09 职场文书
房地产开盘策划方案
2014/02/10 职场文书
人力资源总监工作说明
2014/03/03 职场文书
土木工程求职信
2014/05/29 职场文书
承诺书模板
2014/08/30 职场文书
谢师宴邀请函
2015/02/02 职场文书
社交电商模式的兴起:这些新的商机千万别错过
2019/07/26 职场文书
你有一份《诚信考试承诺书》待领取
2019/11/13 职场文书