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


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 相关文章推荐
jQuery第三课 修改元素属性及内容的代码
Mar 14 Javascript
Jquery 插件学习实例1 插件制作说明与tableUI优化
Apr 02 Javascript
javascript如何使用bind指定接收者
May 04 Javascript
JavaScript常用小技巧小结
Dec 29 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
Aug 24 Javascript
jQuery使用正则表达式替换dom元素标签用法示例
Jan 16 Javascript
jQuery实现一个简单的验证码功能
Jun 26 jQuery
Electron 如何调用本地模块的方法
Feb 01 Javascript
jquery实现二级导航下拉菜单效果实例
May 14 jQuery
JavaScript实现星级评价效果
May 17 Javascript
jQuery删除/清空指定元素的所有子节点实例代码
Jul 04 jQuery
layui table表格数据的新增,修改,删除,查询,双击获取行数据方式
Nov 14 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
Laravel 5框架学习之Eloquent (laravel 的ORM)
2015/04/08 PHP
php实现的SSO单点登录系统接入功能示例分析
2016/10/12 PHP
php中时间函数date及常用的时间计算
2017/05/12 PHP
PHP大文件分块上传功能实例详解
2019/07/22 PHP
PHP与SQL语句写一句话木马总结
2019/10/11 PHP
laravel 5.3 单用户登录简单实现方法
2019/10/14 PHP
jquery 学习笔记一
2010/04/07 Javascript
js判断undefined类型示例代码
2014/02/10 Javascript
jquery实现图片随机排列的方法
2015/05/04 Javascript
浅谈javascript中的DOM方法
2015/07/16 Javascript
基于jQuery Circlr插件实现产品图片360度旋转
2015/09/20 Javascript
Bootstrap弹出框(modal)垂直居中的问题及解决方案详解
2016/06/12 Javascript
深入理解JS DOM事件机制
2016/08/06 Javascript
nodejs操作mongodb的填删改查模块的制作及引入实例
2018/01/02 NodeJs
关于redux-saga中take使用方法详解
2018/02/27 Javascript
浅谈mvvm-simple双向绑定简单实现
2018/04/18 Javascript
webpack4+Vue搭建自己的Vue-cli项目过程分享
2018/08/29 Javascript
vue 使用vue-i18n做全局中英文切换的方法
2018/10/29 Javascript
使用pm2自动化部署node项目的方法步骤
2019/01/28 Javascript
JavaScript中this的全面解析及常见实例
2019/05/14 Javascript
一篇文章介绍redux、react-redux、redux-saga总结
2019/05/23 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
2020/04/01 Javascript
[36:05]完美世界DOTA2联赛循环赛 Forest vs DM 第一场 11.06
2020/11/06 DOTA
Python3字符串学习教程
2015/08/20 Python
python判断字符串或者集合是否为空的实例
2019/01/23 Python
python文本数据处理学习笔记详解
2019/06/17 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
2019/08/12 Python
使用Pandas的Series方法绘制图像教程
2019/12/04 Python
Zalando Lounge瑞士:时尚与生活方式购物俱乐部
2020/03/12 全球购物
家居设计专业个人自荐信范文
2013/11/26 职场文书
公务员培训自我鉴定
2014/02/01 职场文书
楼面经理岗位职责范本
2014/02/18 职场文书
贯彻学习两会心得体会范文
2014/03/17 职场文书
财政专业大学生职业生涯规划书
2014/09/17 职场文书
解除劳动合同协议书范本2014
2014/09/25 职场文书
法院答辩状格式
2015/05/22 职场文书