uni-app 自定义底部导航栏的实现


Posted in Javascript onDecember 11, 2020

这是我目前发现较好的uni-app 自定义底部导航栏方法,其他方法的缺点主要是在切换时,要么会闪烁,要么会每点击一下,都会请求一次数据。如果有其他更好的方法,欢迎评论留言,最近才开始用uni-app写项目,之前只是看了下文档。

1. tabbar 组件

<template>
 <view class="tabbar-container">
  <view
   :style="{ color: currentIndex == index ? '#007EFF' : '#333333' }"
   v-for="(item, index) in tabbarList"
   :key="index"
   style="flex: 1"
   @click="switchTab(index)"
  >
   <view :class="'iconfont ' + item.icon" />
   <view class="title">{{ item.title }}</view>
  </view>
 </view>
</template>

mounted(){
 let dom = uni.createSelectorQuery().select('.tabbar-container')
  dom.boundingClientRect(e => {
   // tabbarHeight使用频次较高,就设为全局变量了
    getApp().globalData.tabbarHeight = e.height
  }).exec()
}

<style scoped lang="scss">
.iconfont {
 font-size: 18px;
}

.tabbar-container {
 display: flex;
 justify-content: space-evenly;
 text-align: center;
 padding: 10px 0;
 background-color: #fff;
 box-shadow: 0 -1.5px 3px #eee;
 z-index: 999;

 .title {
  font-size: 12px;
 }
}
</style>

2. 引入

这里使用的是swiper,duration为0是为了关闭页面切换动画效果,

<template>
 <view :style="'height: calc(100vh - ' + tabbarHeight + 'px)'">
  <tab-bar
   :currentIndex="currentIndex"
   class="tabbar-container"
   @getCurrentIndex="getCurrentIndex"
  />
  <swiper duration="0" disable-touch :current="currentIndex" style="height: 100%">
   <swiper-item>
    <scroll-view scroll-y style="height: 100%">
     <home />
    </scroll-view>
   </swiper-item>
   <swiper-item>
    <todo-page />
   </swiper-item>
   <swiper-item>
    <launch-task />
   </swiper-item>
   <swiper-item>
    <my-page />
   </swiper-item>
  </swiper>
 </view>
</template>

mounted() {
 this.tabbarHeight = getApp().globalData.tabbarHeight
},

getCurrentIndex(e) {
 this.currentIndex = e;
}

到此这篇关于uni-app 自定义底部导航栏的实现的文章就介绍到这了,更多相关uni-app 底部导航栏内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
javascript 控制弹出窗口
Apr 10 Javascript
JS 表单验证大全
Nov 23 Javascript
获取元素距离浏览器周边的位置的方法getBoundingClientRect
Apr 17 Javascript
Javascript基础教程之数据类型 (字符串 String)
Jan 18 Javascript
纯Javascript实现ping功能的方法
Mar 20 Javascript
JavaScript获取网页表单action属性的方法
Apr 02 Javascript
《JavaScript高级编程》学习笔记之object和array引用类型
Nov 01 Javascript
SpringMVC返回json数据的三种方式
Dec 10 Javascript
JS模拟实现方法重载示例
Aug 03 Javascript
详解设置Webstorm 利用babel将ES6自动转码成ES5
Dec 20 Javascript
Element实现表格嵌套、多个表格共用一个表头的方法
May 09 Javascript
nuxt 实现在其它js文件中使用store的方式
Nov 05 Javascript
微信小程序实现音乐播放页面布局
Dec 11 #Javascript
JS实现可以用键盘方向键控制的动画
Dec 11 #Javascript
JS实现京东商品分类侧边栏
Dec 11 #Javascript
vue使用exif获取图片经纬度的示例代码
Dec 11 #Vue.js
vue使用exif获取图片旋转,压缩的示例代码
Dec 11 #Vue.js
一行JavaScript代码如何实现瀑布流布局
Dec 11 #Javascript
react中hook介绍以及使用教程
Dec 11 #Javascript
You might like
PHP中的超全局变量
2006/10/09 PHP
PHP 循环列出目录内容的函数代码
2010/05/26 PHP
php中将时间差转换为字符串提示的实现代码
2011/08/08 PHP
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
2012/01/12 PHP
使用PHP强制下载PDF文件示例
2014/01/17 PHP
工作中常用到的JS表单验证代码(包括例子)
2010/11/11 Javascript
jquery中$(#form :input)与$(#form input)的区别
2014/08/18 Javascript
smartcrop.js智能图片裁剪库
2015/10/14 Javascript
jQuery EasyUI菜单与按钮详解
2016/07/13 Javascript
javascript设计模式Constructor(构造器)模式
2016/08/19 Javascript
基于jQuery实现的单行公告活动轮播效果
2017/08/23 jQuery
JavaScript数据类型的存储方法详解
2017/08/25 Javascript
微信小程序首页的分类功能和搜索功能的实现思路及代码详解
2018/09/11 Javascript
jQuery pjax 应用简单示例
2018/09/20 jQuery
uni-app微信小程序登录并使用vuex存储登录状态的思路详解
2019/11/04 Javascript
浅谈vue在html中出现{{}}的原因及解决方式
2020/11/16 Javascript
[54:28]EG vs OG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
Python中无限元素列表的实现方法
2014/08/18 Python
Android模拟器无法启动,报错:Cannot set up guest memory ‘android_arm’ Invalid argument的解决方法
2016/07/01 Python
用python建立两个Y轴的XY曲线图方法
2019/07/08 Python
Python项目 基于Scapy实现SYN泛洪攻击的方法
2019/07/23 Python
Python爬取破解无线网络wifi密码过程解析
2019/09/17 Python
屏蔽Django admin界面添加按钮的操作
2020/03/11 Python
基于python代码批量处理图片resize
2020/06/04 Python
Amara德国:家居饰品、设计师品牌和豪华礼品
2019/05/20 全球购物
Vrbo西班牙:预订您的度假公寓(公寓、乡村房屋…)
2020/04/27 全球购物
逻辑链路控制协议
2016/10/01 面试题
经济类毕业生求职信
2014/06/26 职场文书
小学语文教师年度考核个人总结
2015/02/05 职场文书
先进个人总结范文
2015/02/15 职场文书
2015年读书月活动总结
2015/03/26 职场文书
2015年远程教育工作总结
2015/05/20 职场文书
施工安全协议书
2016/03/22 职场文书
Java用自带的Image IO给图片添加水印
2021/06/15 Java/Android
Python函数中apply、map、applymap的区别
2021/11/27 Python
Spring Boot DevTools 全局配置学习指南
2022/03/31 Java/Android