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


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左侧三级菜单导航实例代码
Sep 13 Javascript
让JavaScript和其它资源并发下载的方法
Oct 16 Javascript
JavaScript实现输入框(密码框)出现提示语
Jan 12 Javascript
AngularJS基础 ng-submit 指令简单示例
Aug 03 Javascript
jQuery中常用动画效果函数(日常整理)
Sep 17 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单
Nov 25 Javascript
详解用vue.js和laravel实现微信授权登陆
Jun 23 Javascript
详解基于Vue-cli搭建的项目如何和后台交互
Jun 29 Javascript
微信小程序使用swiper组件实现类3D轮播图
Aug 29 Javascript
Node.js + express基本用法教程
Mar 14 Javascript
解决vue axios跨域 Request Method: OPTIONS问题(预检请求)
Aug 14 Javascript
JavaScript中的几种继承方法示例
Dec 06 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开发不能违背的安全规则 过滤用户输入
2011/05/01 PHP
PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)
2015/09/22 PHP
PHP执行linux命令6个函数代码实例
2020/11/24 PHP
Nigma vs Liquid BO3 第二场2.14
2021/03/10 DOTA
基于jquery的web页面日期格式化插件
2011/11/15 Javascript
js动态生成指定行数的表格
2013/07/11 Javascript
js post提交调用方法
2014/02/12 Javascript
JavaScript中一个奇葩的IE浏览器判断方法
2014/04/16 Javascript
javascript的动态加载、缓存、更新以及复用(一)
2014/06/09 Javascript
JS小游戏之仙剑翻牌源码详解
2014/09/25 Javascript
jQuery中parents()方法用法实例
2015/01/07 Javascript
ECMAScript6函数默认参数
2015/06/12 Javascript
JS使用cookie实现DIV提示框只显示一次的方法
2015/11/05 Javascript
WEB前端开发都应知道的jquery小技巧及jquery三个简写
2015/11/15 Javascript
JS中artdialog弹出框控件之提交表单思路详解
2016/04/18 Javascript
js style.display=block显示布局错乱问题的解决方法
2016/09/21 Javascript
基于AngularJS前端云组件最佳实践
2016/10/20 Javascript
基于vue实现分页/翻页组件paginator示例
2017/03/09 Javascript
解决Node.js使用MySQL出现connect ECONNREFUSED 127.0.0.1:3306的问题
2017/03/09 Javascript
Angularjs+bootstrap+table多选(全选)支持单击行选中实现编辑、删除功能
2017/03/27 Javascript
nodejs+websocket实时聊天系统改进版
2017/05/18 NodeJs
Nodejs中Express 常用中间件 body-parser 实现解析
2017/05/22 NodeJs
详解vue 单页应用(spa)前端路由实现原理
2018/04/04 Javascript
Element Table的row-class-name无效与动态高亮显示选中行背景色
2018/11/30 Javascript
python以环状形式组合排列图片并输出的方法
2015/03/17 Python
Python3远程监控程序的实现方法
2019/07/15 Python
浅谈keras中的目标函数和优化函数MSE用法
2020/06/10 Python
使用canvas对多图片拼合并导出图片的方法
2018/08/28 HTML / CSS
size?丹麦官网:英国伦敦的球鞋精品店
2019/04/15 全球购物
家长会邀请书
2014/01/25 职场文书
优秀教师事迹简介
2014/02/02 职场文书
《吃水不忘挖井人》教学反思
2014/04/15 职场文书
校长新学期致辞
2015/07/30 职场文书
获奖感言范文
2015/07/31 职场文书
工作计划范文之财务管理
2019/08/09 职场文书
Sql Server 行数据的某列值想作为字段列显示的方法
2022/04/20 SQL Server