效果如下
调用
<tabbar :selected='selected'></tabbar>
组件
<template>
<div class='tabbar'>
<ul>
<li @click="go(item.path)"
:class="{active:message==item.path}"
v-for="(item,index) in atabs">
<img :src="message==item.path?item.icon_active:item.icon"
alt="">
{{item.title}}
</li>
</ul>
</div>
</template>
<script>
export default {
props: {
selected: String,
},
name: 'tabbar',
data () {
return {
message: this.selected,
atabs: [
{ title: '首页', path: 'index', icon: require('@/assets/images/index.png'), icon_active: require('@/assets/images/index-active.png') },
{ title: '附近门店', path: 'storeLists', icon: require('@/assets/images/storeLists.png'), icon_active: require('@/assets/images/storeLists-active.png') },
{ title: '我的', path: 'gettheOrder', icon: require('@/assets/images/gettheOrder.png'), icon_active: require('@/assets/images/gettheOrder-active.png') }
]
}
},
methods: {
go (url) {
this.$router.push(`/${url}`)
}
},
}
</script>
<style lang="less" scoped>
.tabbar {
position: fixed;
left: 0;
bottom: 0;
width: 100%;
height: 0.45rem;
ul {
width: 100%;
height: 100%;
display: flex;
justify-content: space-around;
background-color: #fff;
li {
display: flex;
flex-direction: column;
justify-content: center;
width: 100%;
text-align: center;
// padding: 7px 0;
border-top: 1px solid #eaeaea;
font-size: 0.1rem;
img {
width: 0.2rem;
height: 0.2rem;
margin: 5px auto 0px;
}
&.active {
color: #ff5621;
font-weight: bold;
}
}
}
}
</style>