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


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 miscellanea -display data real time, using window.status
Jan 09 Javascript
永不消失的title提示代码
Feb 15 Javascript
一个小型js框架myJSFrame附API使用帮助
Jun 28 Javascript
JS声明变量背后的编译原理剖析
Dec 28 Javascript
解决checkbox的attr(checked)一直为undefined问题
Jun 16 Javascript
javascript实现checkBox的全选,反选与赋值
Mar 12 Javascript
基于JavaScript实现智能右键菜单
Mar 02 Javascript
JS实现设置ff与ie元素绝对位置的方法
Mar 08 Javascript
vue生成随机验证码的示例代码
Sep 29 Javascript
微信小程序之几种常见的弹框提示信息实现详解
Jul 11 Javascript
适用于 Vue 的播放器组件Vue-Video-Player操作
Nov 16 Javascript
ant design charts 获取后端接口数据展示
May 25 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/10/09 PHP
php 将字符串按大写字母分隔成字符串数组
2010/04/30 PHP
PHP的autoload机制的实现解析
2012/09/15 PHP
php查询ip所在地的方法
2014/12/05 PHP
jQuery EasyUI API 中文文档 - NumberSpinner数值微调器使用介绍
2011/10/21 Javascript
nodejs的require模块(文件模块/核心模块)及路径介绍
2013/01/14 NodeJs
javascript获取form里的表单元素的示例代码
2014/02/14 Javascript
用jquery实现的一个超级简单的下拉菜单
2014/05/18 Javascript
对 jQuery 中 data 方法的误解分析
2014/06/18 Javascript
jQuery scrollFix滚动定位插件
2015/04/01 Javascript
基于jQuery和CSS3制作响应式水平时间轴附源码下载
2015/12/20 Javascript
javascript简单实现等比例缩小图片的方法
2016/07/27 Javascript
jquery 标签 隔若干行加空白或者加虚线的方法
2016/12/07 Javascript
JS中Array数组学习总结
2017/01/18 Javascript
使用vue.js实现checkbox的全选和多个的删除功能
2017/02/17 Javascript
javascript编程开发中取色器及封装$函数用法示例
2017/08/09 Javascript
JS实现提交表单前的数字及邮箱校检功能
2017/11/13 Javascript
Angular实现较为复杂的表格过滤,删除功能示例
2017/12/23 Javascript
通过nodejs 服务器读取HTML文件渲染到页面的方法
2018/05/17 NodeJs
微信小程序实现的日期午别医生排班表功能示例
2019/01/09 Javascript
微信小程序使用map组件实现检索(定位位置)周边的POI功能示例
2019/01/23 Javascript
详解Nuxt内导航栏的两种实现方式
2020/04/16 Javascript
python数据封装json格式数据
2018/03/04 Python
Python开发之Nginx+uWSGI+virtualenv多项目部署教程
2019/05/13 Python
python对文件的操作方法汇总
2020/02/28 Python
Python MySQLdb 执行sql语句时的参数传递方式
2020/03/04 Python
利用Python实现朋友圈中的九宫格图片效果
2020/09/03 Python
SpringBoot首页设置解析(推荐)
2021/02/11 Python
美国学校用品、教室和教学商店:Discount School Supply
2018/04/04 全球购物
家庭财产分割协议书范本
2014/11/24 职场文书
2014年财政工作总结
2014/12/10 职场文书
酒店工程部岗位职责
2015/02/12 职场文书
2015年学生会部门工作总结
2015/04/21 职场文书
2016元旦文艺汇演主持词(开场白+结束语)
2015/12/03 职场文书
opencv深入浅出了解机器学习和深度学习
2022/03/17 Python
《最终幻想14》6.01版本4月5日推出 追加新任务新道具
2022/04/03 其他游戏