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


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之一
Apr 27 Javascript
javascript js cookie的存储,获取和删除
Dec 29 Javascript
EXTJS记事本 当CompositeField遇上RowEditor
Jul 31 Javascript
js读写json文件实例代码
Oct 21 Javascript
jQuery多文件异步上传带进度条实例代码
Aug 16 Javascript
BootStrap 图片样式、辅助类样式和CSS组件的实例详解
Jan 20 Javascript
微信小程序动态显示项目倒计时效果
Jun 13 Javascript
微信小程序搭建自己的Https服务器
May 02 Javascript
Vue实现拖放排序功能的实例代码
Jul 08 Javascript
node.js中对Event Loop事件循环的理解与应用实例分析
Feb 14 Javascript
纯js实现无缝滚动功能代码实例
Feb 21 Javascript
vue 获取url参数、get参数返回数组的操作
Nov 12 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
实用函数5
2007/11/08 PHP
PHP重载基础知识回顾
2020/09/10 PHP
javascript编程起步(第七课)
2007/02/27 Javascript
Jquery操作Select 简单方便 一个js插件搞定
2009/11/12 Javascript
轻松创建nodejs服务器(10):处理POST请求
2014/12/18 NodeJs
不用一句js代码初始化组件
2016/01/27 Javascript
javascript的 {} 语句块详解
2016/02/27 Javascript
js实现文字滚动效果
2016/03/03 Javascript
JS函数arguments数组获得实际传参数个数的实现方法
2016/05/28 Javascript
基本DOM节点操作
2017/01/17 Javascript
canvas 实现中国象棋
2017/02/17 Javascript
纯JS实现图片验证码功能并兼容IE6-8(推荐)
2017/04/19 Javascript
解决vue build打包之后首页白屏的问题
2018/03/06 Javascript
详解Vue+axios+Node+express实现文件上传(用户头像上传)
2018/08/10 Javascript
Vue使用zTree插件封装树组件操作示例
2019/04/25 Javascript
js中let能否完全替代IIFE
2019/06/15 Javascript
浅谈layui数据表格判断问题(加入表单元素),设置单元格样式
2019/10/26 Javascript
Python上传package到Pypi(代码简单)
2016/02/06 Python
python 连接各类主流数据库的实例代码
2018/01/30 Python
Django分页查询并返回jsons数据(中文乱码解决方法)
2018/08/02 Python
对pandas的行列名更改与数据选择详解
2018/11/12 Python
python实现代码统计程序
2019/09/19 Python
Python箱型图绘制与特征值获取过程解析
2019/10/22 Python
Python列表元素常见操作简单示例
2019/10/25 Python
浅析python,PyCharm,Anaconda三者之间的关系
2019/11/27 Python
Python网络爬虫四大选择器用法原理总结
2020/06/01 Python
Links of London官方网站:英国标志性的珠宝品牌
2017/04/09 全球购物
Merrell迈乐澳大利亚网站:购买户外登山鞋
2017/05/28 全球购物
美国在线眼镜店:GlassesShop
2018/11/15 全球购物
Python如何定义一个函数
2015/09/01 面试题
九年级语文教学反思
2014/02/04 职场文书
火箭队口号
2014/06/18 职场文书
邹越感恩父母演讲稿
2014/08/28 职场文书
2016春节放假通知范文
2015/08/18 职场文书
党校培训学习心得体会
2016/01/06 职场文书
教你nginx跳转配置的四种方式
2022/07/07 Servers