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


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 树形结构的选择器
Feb 15 Javascript
Javascript中正则表达式的全局匹配模式分析
Apr 26 Javascript
利用谷歌地图API获取点与点的距离的js代码
Oct 11 Javascript
同时使用n个window onload加载实例介绍
Apr 25 Javascript
Jquery焦点与失去焦点示例应用
Jun 10 Javascript
javascript生成不重复的随机数
Jul 17 Javascript
如何使用jQuery技术开发ios风格的页面导航菜单
Jul 29 Javascript
JavaScript基础之AJAX简单的小demo
Jan 29 Javascript
JavaScript 函数的定义-调用、注意事项
Apr 16 Javascript
vue中的watch监听数据变化及watch中各属性的详解
Sep 11 Javascript
Vue动态组件与异步组件实例详解
Feb 23 Javascript
基于javascript处理二进制图片流过程详解
Jun 08 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
Zend Guard一些常见问题解答
2008/09/11 PHP
php设计模式 Bridge (桥接模式)
2011/06/26 PHP
PHP常用函数和常见疑难问题解答
2014/03/05 PHP
Laravel 5.4前后台分离,通过不同的二级域名访问方法
2019/10/13 PHP
javascript loadScript异步加载脚本示例讲解
2013/11/14 Javascript
javascript解析json实例详解
2014/11/05 Javascript
详解AngularJS中的作用域
2015/06/17 Javascript
js限制文本框的输入内容代码分享(3类)
2015/08/20 Javascript
BootStrap智能表单实战系列(三)分块表单配置详解
2016/06/13 Javascript
vue绑定事件后获取绑定事件中的this方法
2018/09/15 Javascript
layui实现三级导航菜单
2019/07/26 Javascript
超轻量级的js时间库miment使用解析
2019/08/02 Javascript
javascript 数组(list)添加/删除的实现
2020/12/17 Javascript
python的Template使用指南
2014/09/11 Python
简单的Python的curses库使用教程
2015/04/11 Python
python3实现跳一跳点击跳跃
2018/01/08 Python
详解Python判定IP地址合法性的三种方法
2018/03/06 Python
Python2与Python3的区别实例总结
2019/04/17 Python
华为校园招聘上机笔试题 扑克牌大小(python)
2020/04/22 Python
为什么从Python 3.6开始字典有序并效率更高
2019/07/15 Python
Python之数据序列化(json、pickle、shelve)详解
2019/08/30 Python
python2.7实现复制大量文件及文件夹资料
2019/08/31 Python
用python解压分析jar包实例
2020/01/16 Python
详解CSS3的图层阴影和文字阴影效果使用
2016/06/09 HTML / CSS
贝嫂喜欢的婴儿品牌,个性化的婴儿礼物:My 1st Years
2017/11/19 全球购物
美国性感内衣店:Yandy
2018/06/12 全球购物
Koral官方网站:女性时尚运动服
2019/04/10 全球购物
煤矿班组长的职责
2013/12/25 职场文书
《中华少年》教学反思
2014/02/15 职场文书
元旦获奖感言
2014/03/08 职场文书
观看《永远的雷锋》心得体会
2014/03/12 职场文书
房屋租赁协议书
2014/04/10 职场文书
学生实习证明模板汇总
2014/09/25 职场文书
小学家长通知书评语
2014/12/31 职场文书
学习雷锋精神活动总结
2015/02/06 职场文书
如何vue使用el-table遍历循环表头和表体数据
2022/04/26 Vue.js