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 相关文章推荐
jquery png 透明解决方案(推荐)
Aug 21 Javascript
基于JavaScript 数据类型之Boolean类型分析介绍
Apr 19 Javascript
简单的Jquery遮罩层代码实例
Nov 14 Javascript
jquery修改网页背景颜色通过css方法实现
Jun 06 Javascript
使用text方法获取Html元素文本信息示例
Sep 01 Javascript
javascript动态添加checkbox复选框的方法
Dec 23 Javascript
ES6中Math对象新增的方法实例详解
Apr 25 Javascript
JS判断非空至少输入两个字符的简单实现方法
Jun 23 Javascript
React 组件转 Vue 组件的命令写法
Feb 28 Javascript
解决vue-cli项目webpack打包后iconfont文件路径的问题
Sep 01 Javascript
Electron-vue脚手架改造vue项目的方法
Oct 22 Javascript
echarts多条折线图动态分层的实现方法
May 24 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
经典的PHPer为什么被认为是草根?
2007/04/02 PHP
thinkphp中memcache的用法实例
2014/11/29 PHP
PHP实现简单计算器小程序
2020/08/28 PHP
PHP获取ttf格式文件字体名的方法示例
2019/03/06 PHP
关于取不到由location.href提交而来的上级页面地址的解决办法
2009/07/30 Javascript
jQuery 源码分析笔记(2) 变量列表
2011/05/28 Javascript
幻灯片带网页设计中的20个奇妙应用示例小结
2012/05/27 Javascript
JavaScript 盒模型 尺寸深入理解
2012/12/31 Javascript
Jquery获取复选框被选中值的简单方法
2013/07/04 Javascript
jQuery+CSS3实现树叶飘落特效
2015/02/01 Javascript
基于js里调用函数时,函数名带括号和不带括号的区别
2016/07/28 Javascript
ES6正则的扩展实例详解
2017/04/25 Javascript
vue基于mint-ui的城市选择3级联动的示例
2017/10/25 Javascript
浅谈webpack SplitChunksPlugin实用指南
2018/09/17 Javascript
改变layer confirm弹窗按钮的颜色方法
2019/09/12 Javascript
JS中的const命令你真懂它吗
2020/03/08 Javascript
antd table按表格里的日期去排序操作
2020/11/17 Javascript
python爬虫爬取网页表格数据
2018/03/07 Python
PyTorch学习笔记之回归实战
2018/05/28 Python
Python3实现腾讯云OCR识别
2018/11/27 Python
python调用动态链接库的基本过程详解
2019/06/19 Python
Python实现打包成库供别的模块调用
2020/07/13 Python
html5中svg canvas和图片之间相互转化思路代码
2014/01/24 HTML / CSS
压铸汽车模型收藏家:Diecastmodelswholesale.com
2016/12/21 全球购物
医生实习工作总结的自我评价
2013/09/27 职场文书
电工工作职责范本
2014/02/22 职场文书
幼儿园老师寄语
2014/04/03 职场文书
新闻报道策划方案
2014/06/11 职场文书
营销总经理岗位职责范本
2014/09/02 职场文书
群众路线教育实践活动总结
2014/10/30 职场文书
承诺函范文
2015/01/21 职场文书
中学生运动会广播稿
2015/08/19 职场文书
2016年小学生教师节广播稿
2015/12/18 职场文书
公司年会晚会开幕词
2019/04/02 职场文书
不会写演讲稿,快来看看这篇文章!
2019/08/06 职场文书
flex布局中使用flex-wrap实现换行的项目实践
2022/06/21 HTML / CSS