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 相关文章推荐
强制设为首页代码
Jun 19 Javascript
Jquery截取中文字符串的实现代码
Dec 22 Javascript
jQuery自制提示框tooltip改进版
Aug 01 Javascript
jQuery实现可拖拽的许愿墙效果【附demo源码下载】
Sep 14 Javascript
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
Dec 14 Javascript
微信小程序 解决swiper不显示图片的方法
Jan 04 Javascript
微信小程序input框中加入小图标的实现方法
Jun 19 Javascript
Vue中用props给data赋初始值遇到的问题解决
Nov 27 Javascript
微信小程序indexOf的替换方法(推荐)
Jan 14 Javascript
vue 解决data中定义图片相对路径页面不显示的问题
Aug 13 Javascript
iview实现动态表单和自定义验证时间段重叠
Jan 10 Javascript
了不起的11个JavaScript代码重构最佳实践小结
Jan 11 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通过rmdir删除目录的简单用法
2015/03/18 PHP
PHP面向对象程序设计之多态性的应用示例
2018/12/19 PHP
laravel5.5添加echarts实现画图功能的方法
2019/10/09 PHP
PHP序列化和反序列化深度剖析实例讲解
2020/12/29 PHP
jQuery 事件队列调整方法
2009/09/18 Javascript
jQuery Tools Dateinput使用介绍
2012/07/14 Javascript
一个通过script自定义属性传递配置参数的方法
2014/09/15 Javascript
jQuery实现在textarea指定位置插入字符或表情的方法
2015/03/11 Javascript
解析javascript中鼠标滚轮事件
2015/05/26 Javascript
微信jssdk用法汇总
2016/07/16 Javascript
JS出现失效的情况总结
2017/01/20 Javascript
jQuery获取table下某一行某一列的值实现代码
2017/04/07 jQuery
JS+Canvas绘制动态时钟效果
2017/11/10 Javascript
Bootstrap popover 实现鼠标移入移除显示隐藏功能方法
2018/01/24 Javascript
解析Vue.js中的组件
2018/02/02 Javascript
使用vue如何构建一个自动建站项目
2018/02/05 Javascript
微信小程序scroll-view隐藏滚动条的方法详解
2020/03/25 Javascript
JS实现悬浮球只在一侧滑动并且是横屏状态下
2020/08/19 Javascript
Python获取邮件地址的方法
2015/07/10 Python
使用 Python 实现文件递归遍历的三种方式
2018/07/18 Python
python实现蒙特卡罗方法教程
2019/01/28 Python
Python异常处理知识点总结
2019/02/18 Python
python异步编程 使用yield from过程解析
2019/09/25 Python
终于搞懂了Keras中multiloss的对应关系介绍
2020/06/22 Python
详解利用python识别图片中的条码(pyzbar)及条码图片矫正和增强
2020/11/17 Python
HTML高亮关键字的实现代码
2018/10/22 HTML / CSS
科颜氏法国官网:Kiehl’s法国
2019/08/20 全球购物
中西医结合临床医学专业大学生自荐信
2013/09/28 职场文书
母亲节演讲稿范文
2014/01/02 职场文书
校三好学生主要事迹
2014/01/11 职场文书
自我鉴定注意事项
2014/01/19 职场文书
自主招生推荐信范文
2014/05/10 职场文书
博士生导师推荐信
2014/07/08 职场文书
2014教师党员自我评议总结
2014/09/19 职场文书
2015年数学教师工作总结
2015/05/20 职场文书
拙作再改《我的收音机情缘》
2022/04/05 无线电