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 post方式传递多个参数值后台以数组的方式进行接收
Jan 11 Javascript
javascript实现可拖动变色并关闭层窗口实例
May 15 Javascript
js贪吃蛇网页版游戏特效代码分享(挑战十关)
Aug 24 Javascript
JS简单编号生成器实现方法(附demo源码下载)
Apr 05 Javascript
解决ajax不能访问本地文件问题(利用js跨域原理)
Jan 24 Javascript
JS判断键盘是否按的回车键并触发指定按钮点击操作的方法
Feb 13 Javascript
jQuery使用EasyUi实现三级联动下拉框效果
Mar 08 Javascript
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
Aug 17 jQuery
vue指令只能输入正数并且只能输入一个小数点的方法
Jun 08 Javascript
vue.js绑定事件监听器示例【基于v-on事件绑定】
Jul 07 Javascript
Vue-CLI 项目在pycharm中配置方法
Aug 30 Javascript
Vue element-ui父组件控制子组件的表单校验操作
Jul 17 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 和 MySQL 基础教程(四)
2006/10/09 PHP
php垃圾代码优化操作代码
2010/08/05 PHP
php中var_export与var_dump的区别分析
2010/08/21 PHP
浅谈web上存漏洞及原理分析、防范方法(安全文件上存方法)
2013/06/29 PHP
php求数组全排列,元素所有组合的方法
2016/05/05 PHP
PHP 获取客户端 IP 地址的方法实例代码
2018/11/11 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
2019/10/12 PHP
用JS实现一个页面多个css样式实现
2008/05/29 Javascript
jQuery对象数据缓存Cache原理及jQuery.data方法区别介绍
2013/04/07 Javascript
使用jspdf生成pdf报表
2015/07/03 Javascript
angularjs创建弹出框实现拖动效果
2020/08/25 Javascript
JS中sort函数排序用法实例分析
2016/06/16 Javascript
js html css实现复选框全选与反选
2016/10/09 Javascript
js实现省市级联效果分享
2017/08/10 Javascript
vue中v-show和v-if的异同及v-show用法
2019/06/06 Javascript
详解BootStrap表单验证中重置BootStrap-select验证提示不清除的坑
2019/09/17 Javascript
Vuex中实现数据状态查询与更改
2019/11/08 Javascript
Angular value与ngValue区别详解
2019/11/27 Javascript
webpack DllPlugin xxx is not defined解决办法
2019/12/13 Javascript
[02:56]DOTA2矮人直升机 英雄基础教程
2013/11/26 DOTA
Python获取文件ssdeep值的方法
2014/10/05 Python
python清除字符串前后空格函数的方法
2018/10/21 Python
Python中如何引入第三方模块
2020/05/27 Python
美国求婚钻戒网站:Super Jeweler
2016/08/27 全球购物
八皇后问题,输出了所有情况,不过有些结果只是旋转了90度
2016/08/15 面试题
浙大网新C/C++面试解惑
2015/05/27 面试题
敏捷开发的主要原则都有哪些
2015/04/26 面试题
大学生职业生涯规划范文——找准自我,定位人生
2014/01/23 职场文书
探亲邀请信范文
2014/01/30 职场文书
党的群众路线教育实践活动学习心得体会
2014/03/03 职场文书
初中班主任寄语
2014/04/04 职场文书
小学见习报告
2014/10/31 职场文书
市级三好学生评语
2014/12/29 职场文书
消防演习感想
2015/08/10 职场文书
广播稿:校园广播稿范文
2019/04/17 职场文书
Minikube搭建Kubernetes集群
2022/03/31 Servers