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


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 相关文章推荐
javascript html 静态页面传参数
Apr 10 Javascript
说说JSON和JSONP 也许你会豁然开朗
Sep 02 Javascript
JQuery select控件的相关操作实现代码
Sep 14 Javascript
浏览器图片选择预览、旋转、批量上传的JS代码实现
Dec 04 Javascript
Node调试工具JSHint的安装及配置教程
May 27 Javascript
使用Node.js为其他程序编写扩展的基本方法
Jun 23 Javascript
D3.js实现散点图和气泡图的方法详解
Sep 21 Javascript
vue页面使用阿里oss上传功能的实例(一)
Aug 09 Javascript
template.js前端模板引擎使用详解
Oct 10 Javascript
javascript字体颜色控件的开发 JS实现字体控制
Nov 27 Javascript
p5.js入门教程之图片加载
Mar 20 Javascript
webgl实现物体描边效果的方法介绍
Nov 27 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
PHP 和 MySQL 开发的 8 个技巧
2007/01/02 PHP
在PHP中使用curl_init函数的说明
2010/11/02 PHP
yii使用activeFileField控件实现上传文件与图片的方法
2015/12/28 PHP
浅析Laravel5中队列的配置及使用
2016/08/04 PHP
PHP运行模式汇总
2016/11/06 PHP
HTTP头隐藏PHP版本号实现过程解析
2020/12/09 PHP
提高网站信任度的技巧
2008/10/17 Javascript
JQuery 写的个性导航菜单
2009/12/24 Javascript
javascript使用百度地图api和html5特性获取浏览器位置
2014/01/10 Javascript
javascript删除字符串最后一个字符
2014/01/14 Javascript
JavaScript简单下拉菜单实例代码
2015/09/07 Javascript
解析如何利用iframe标签以及js制作时钟
2016/12/08 Javascript
jQuery插件HighCharts绘制2D圆环图效果示例【附demo源码下载】
2017/03/09 Javascript
Angular4项目中添加i18n国际化插件ngx-translate的步骤详解
2017/07/02 Javascript
JS+HTML5 FileReader实现文件上传前本地预览功能
2020/03/27 Javascript
React Native使用百度Echarts显示图表的示例代码
2017/11/07 Javascript
微信小程序实现点击按钮修改字体颜色功能【附demo源码下载】
2017/12/05 Javascript
Vue循环中多个input绑定指定v-model实例
2020/08/31 Javascript
如何基于jQuery实现五角星评分
2020/09/02 jQuery
Python socket.error: [Errno 98] Address already in use的原因和解决方法
2014/08/25 Python
跟老齐学Python之从格式化表达式到方法
2014/09/28 Python
《与孩子一起学编程》python自测题
2018/05/27 Python
使用Python监视指定目录下文件变更的方法
2018/10/15 Python
python 统计文件中的字符串数目示例
2019/12/24 Python
Python unittest如何生成HTMLTestRunner模块
2020/09/08 Python
Python使用Selenium模拟浏览器自动操作功能
2020/09/08 Python
python使用matplotlib:subplot绘制多个子图的示例
2020/09/24 Python
技术经理的自我评价范文
2013/12/03 职场文书
十八届三中全会个人学习材料
2014/02/13 职场文书
财务支持类个人的自我评价
2014/02/14 职场文书
秋季运动会广播稿
2014/02/22 职场文书
2016年幼儿园教师政治学习心得体会
2016/01/23 职场文书
实习报告范文之电话客服岗位
2019/07/26 职场文书
nginx安装以及配置的详细过程记录
2021/09/15 Servers
Javascript设计模式之原型模式详细
2021/10/05 Javascript
vue自定义右键菜单之全局实现
2022/04/09 Vue.js