项目地址:https://gitee.com/jielov/music-netease-api.git

先创建三个页面 分别为 home.vue , classify.vue, my.vue 。 以下为基础样式

创建一个 base_tab 为主页面,在base_tab 引入先前创建好的三个页面,关于组件的引用可自行去官网查看

//导入组件
import Home from '@/components/home'
import Classify from '@/components/classify'
import My from '@/pages/index/index' export default {
components: {
Home,
Classify,
My
}
}

导入组件之后,先让组件在页面上显示出来,然后在开始在页面布局

v-if 里的current 是在data里定义的,初始值为0

v-if="current == 0" ,current 可以理解为id,根据id == 几来显示页面

当子页面在父页面 显示出来后,开始定义底部tab样式

<view style="height: 90vh;">
<!-- 三个子页面 -->
<Home v-if="current == 0"></Home>
<Classify v-if="current == 1"></Classify>
<My v-if="current == 2"></My>
<!-- 底部tab样式 -->
<view class="tab">
<!-- 循环 tabbar里面的数据 -->
<block v-for="(item,index) in tabbar" :key="index">
<view class="tab_tiem" :class="[current == index ? 'active': '']" :data-index="index" @tap="tabSwitch">
<view class="item_img">
<image class="image" :src="current != index ? item.img :item.slectImg " mode=""></image>
</view>
<view class="item_name">
{{item.text}}
</view>
</view>
</block>
</view>
</view>

tab 显示的图标 以三元运算来进行 判断 是否选中状态

<image class="image" :src="current != index ? item.img :item.slectImg " mode=""></image>

@tap="tabSwitch" 点击事件

export default {
methods: {
tabSwitch(e) {
console.log(e);
let index = e.currentTarget.dataset.index
this.current = index
}
},
}

循环 tabbar 数据

export default {
data() {
return {
current: 0,
tabbar: [{
img: '../../static/tab/home.png', //未选中
slectImg: '../../static/tab/home_select.png', //已选中
text: '首页',
},
{
img: '../../static/tab/classify.png',
slectImg: '../../static/tab/classify_select.png',
text: '分类',
},
{
img: '../../static/tab/my.png',
slectImg: '../../static/tab/my_select.png',
text: '我的',
}
],
}
},
}

最后css 样式

<style lang="scss">
.tab {
width: 100%;
position: fixed;
display: flex;
align-items: center;
justify-content: space-between;
z-index: 1024;
background-color: #FFFFFF;
height: 100rpx;
left: 0;
bottom: 0;
padding-bottom: env(safe-area-inset-bottom);
border-top: 1rpx solid #888888; .tab_tiem {
flex: 1;
width: 25%;
display: flex;
align-items: center;
flex-direction: column;
justify-content: center;
font-size: 24rpx;
color: #666;
height: 80rpx;
} .item_img {
padding-top: 4rpx;
} .image {
height: 30rpx;
width: 30rpx;
} .tab::before {
color: red;
} .item_name {
font-weight: bold;
transform: scale(0.8);
transform-origin: center 100%;
line-height: 30rpx;
} .active {
// color: var(--color) !important;
color: red;
}
}
</style>

自定义 简单 底部tab的更多相关文章

  1. Android Studio精彩案例(二)《仿微信动态点击底部tab切换Fragment》

    转载本专栏文章,请注明出处,尊重原创 .文章博客地址:道龙的博客 现在很多的App要么顶部带有tab,要么就底部带有tab.用户通过点击tab从而切换不同的页面(大部分情况时去切换fragment). ...

  2. Android典型界面设计——FragmentTabHost+Fragment实现底部tab切换

    一.问题描述 在上次博文中,我们使用RadioGroup+ViewPage+Fragmen实现了顶部滑动导航(查看文章:http://www.cnblogs.com/jerehedu/p/460759 ...

  3. 【Little Demo】从简单的Tab标签到Tab图片切换

    Tab标签切换效果是比较流行的一种网站页面布局,视觉表现为美观大方,通过标签展示内容.目前在各大网站都有存在这种效果.例如:淘宝的黄金位置使用Tab标签切换效果,网易新闻等. 1.简单的 Tab 标签 ...

  4. Android自定义控件----RadioGroup实现APP首页底部Tab的切换

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  5. jQuery中自定义简单动画的实现

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  6. Java自定义简单标签

     Java自定义简单标签可以方便的在页面输出信息,并且对于权限的控制,和对于Jsp标签和servlet代码的分离有着很好的作用. 下面将以权限的控制为例自定义一个标签: 一.标签类型 <wxt: ...

  7. 界面底部Tab实现

    现在基本上大部分的手机APP都要实现底部Tab,底部实现Tab的实现方式有很多种,那么有没有好的实现方式呢? 今天我将使用一个开源插件来实现底部Tab 参考自zhangli_的博客:http://bl ...

  8. 使用jQuery实现简单的tab框

    html代码 <!DOCTYPE html><html><head> <meta charset="utf-8"> <meta ...

  9. JSP自定义简单标签入门之带有属性

    上面写的那个简单标签来控制页面中标签内容的重复次数是固定的,这就是权限"写死了",这是非常不好的行为,因为其灵活性太差.所以下面就介绍一种使用属性来控制标签内容输出次数的方法. 准 ...

随机推荐

  1. pandas 处理缺失值(连续值取平均,离散值fillna"<unk>")

    # 2.1处理缺失值,连续值用均值填充 continuous_fillna_number = [] for i in train_null_ix: if(i in continuous_ix): me ...

  2. ios移动端 clipboard点击复制失效

    在使用clipboard.min.js插件库实现复制,android下没有问题,ios下无效! 原因:ios默认非点击标签没有点击效果 解决方法:需要给非点击标签加事件,比如在span,div或者p标 ...

  3. Panda Global发现,FATF关于区块链金融又发声

    众所周知,FATF是一个由G7成员国在1989年在法国巴黎所成立的,具有国际反洗钱和反恐融资领域最具权威性的国际组织,全称叫金融行动特别工作组.2007年,中国而加入了该组织,迄今为止FATF成员已涵 ...

  4. Codeforces Edu Round 64 A-D

    A. Inscribed Figures 分类讨论打表即可. PS:这道题翻译有歧义. 这样稍微翻转一下,就可以是\(7\)个交点呀...(大概是我没看英文题干导致的惨案) #include < ...

  5. 使用Tomcat Native提升Tomcat IO效率

    目录 简介 Tomcat的连接方式 APR和Tomcat Native 在tomcat中使用APR 简介 IO有很多种,从最开始的Block IO,到nonblocking IO,再到IO多路复用和异 ...

  6. 【Azure Developer】通过Azure提供的Azue Java JDK 查询虚拟机的CPU使用率和内存使用率

    问题描述 在Azure上创建虚拟机(VM)后,在门户上可以查看监控指标(Metrics),如CPU Usage,Memory,Disk I/O等.那如何通过Java 代码获取到这些指标呢? 关于VM ...

  7. Map、Debug追踪

    Map集合   概述   现实生活中,我们常会看到这样一种集合:IP地址和主机名,身份证号和个人,系统用户名与系统用户对象等,这种一一对应的关系,我们把它称之为映射.Java当中提供了专门的集合类用来 ...

  8. 网络 IO 模型简单介绍

    一.同步阻塞 IO(BIO) 当用户线程调用了 read 系统调用,内核(kernel)就开始了 IO 的第一个阶段:准备数据.很多时候,数据在一开始还没有到达(比如,还没有收到一个完整的Socket ...

  9. Java NIO:FileChannel数据传输

    调用方式 FileChannel dstChannel; FileChannel srcChannel; dstChannel.transferFrom(srcChannel,0,srcChannel ...

  10. HBase删除数据

    hbase官方文档中描述了,hbase删除数据可以总结为下面三种(Java API有很多接口,可以总结下面的几种): 删除一个列的指定版本 删除一个列的所用版本 删除指定列族的所有列 hbase删除数 ...