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实现的listview效果
Apr 28 Javascript
浅谈jQuery中 wrap() wrapAll() 与 wrapInner()的差异
Nov 12 Javascript
jquery+javascript编写国籍控件
Feb 12 Javascript
JavaScript中5种调用函数的方法
Mar 12 Javascript
极易被忽视的javascript面试题七问七答
Feb 15 Javascript
20分钟成功编写bootstrap响应式页面 就这么简单
May 12 Javascript
微信小程序 两种滑动方式(横向滑动,竖向滑动)详细及实例代码
Jan 13 Javascript
JavaScript中清空数组的三种方式
Mar 22 Javascript
Vue源码学习之初始化模块init.js解析
Nov 02 Javascript
Node.JS循环删除非空文件夹及子目录下的所有文件
Mar 12 Javascript
详解基于Koa2开发微信二维码扫码支付相关流程
May 16 Javascript
Javascript原生ajax请求代码实例
Feb 20 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实现密保卡功能实现代码&amp;lt;打包下载直接运行&amp;gt;
2011/10/09 PHP
PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)
2014/05/10 PHP
PHP实现视频文件上传完整实例
2014/08/28 PHP
Smarty模板变量与调节器实例详解
2019/07/20 PHP
javascript 用原型继承来实现对象系统
2010/03/22 Javascript
nullJavascript中创建对象的五种方法实例
2013/05/07 Javascript
jQuery实现公告文字左右滚动的实例代码
2013/10/29 Javascript
jQuery实现的一个tab切换效果内部还嵌有切换
2014/08/10 Javascript
javascript闭包的理解
2015/04/01 Javascript
详解Javascript模板引擎mustache.js
2016/01/20 Javascript
jQuery中的each()详细介绍(推荐)
2016/05/25 Javascript
jQuery EasyUI提交表单验证
2016/07/19 Javascript
react开发中如何使用require.ensure加载es6风格的组件
2017/05/09 Javascript
Angular4 反向代理Details实践
2018/05/30 Javascript
在vue 中使用 less的教程详解
2018/09/26 Javascript
vue 内置过滤器的使用总结(附加自定义过滤器)
2018/12/11 Javascript
vue-mugen-scroll组件实现pc端滚动刷新
2019/08/16 Javascript
微信小程序商品详情页底部弹出框
2019/11/22 Javascript
利用Python中的mock库对Python代码进行模拟测试
2015/04/16 Python
Python学习笔记之if语句的使用示例
2017/10/23 Python
Python使用OpenCV进行标定
2018/05/08 Python
使用python将请求的requests headers参数格式化方法
2019/01/02 Python
详解Python正则表达式re模块
2019/03/19 Python
Python基于codecs模块实现文件读写案例解析
2020/05/11 Python
基于CentOS搭建Python Django环境过程解析
2020/08/24 Python
python3判断IP地址的方法
2021/03/04 Python
使用CSS3美化HTML表单的技巧演示
2016/05/17 HTML / CSS
Kneipp克奈圃美国官网:德国百年精油配方的传承
2018/02/07 全球购物
Probikekit欧盟:在线公路自行车专家
2019/07/12 全球购物
初中家长评语和期望
2014/12/26 职场文书
爱牙日宣传活动总结
2015/02/05 职场文书
2015年远程教育工作总结
2015/05/20 职场文书
家长会开场白和结束语
2015/05/29 职场文书
2015入党个人自传范文
2015/06/26 职场文书
2016年清明节期间群众祭祀活动工作总结
2016/04/01 职场文书
SpringBoot实现quartz定时任务可视化管理功能
2021/08/30 Java/Android