You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
1.7 KiB
88 lines
1.7 KiB
<template> |
|
<view> |
|
<view :style="{backgroundColor:background?background:''}" class="sele_Bar mar"> |
|
<view :style="{transform:`translateX(calc(${barIndex}*100%))`,width:`calc((100% - 20rpx) / ${seleBarData.length})`,backgroundColor:moveBackground?moveBackground:''}" class="move_item"></view> |
|
<view v-for="(item,index) in seleBarData" @tap="seleBarFn(item,index)" :style="{color:barIndex==index? 'white' : ''}" |
|
class="sele_Bar_item"> |
|
{{item.lable}} |
|
</view> |
|
</view> |
|
</view> |
|
</template> |
|
|
|
<script> |
|
export default { |
|
name: "seleBar", |
|
props: { |
|
moveBackground:{ |
|
type:String, |
|
default:'' |
|
}, |
|
seleBarData: { |
|
type: Array, |
|
default: () => { |
|
return [] |
|
} |
|
} |
|
}, |
|
created() { |
|
console.log('%c 组件参数↓', 'color:red;font-size:50px') |
|
console.log(this.seleBarData) |
|
}, |
|
onLoad() { |
|
|
|
}, |
|
data() { |
|
return { |
|
barIndex:0 |
|
}; |
|
}, |
|
methods:{ |
|
seleBarFn(item,index) { |
|
this.barIndex = index |
|
this.$emit('seleBarFn',item,index) |
|
} |
|
} |
|
} |
|
</script> |
|
|
|
<style scoped> |
|
.move_item { |
|
position: absolute; |
|
left: 10rpx; |
|
/* width: calc((100% - 20rpx) / 3); */ |
|
height: 60rpx; |
|
background: #2866FF; |
|
border-radius: 10rpx; |
|
display: flex; |
|
align-items: center; |
|
justify-content: center; |
|
color: #999999; |
|
z-index: 0; |
|
transition: all .3s; |
|
} |
|
.sele_Bar_item { |
|
flex: 1; |
|
height: 60rpx; |
|
border-radius: 10rpx; |
|
display: flex; |
|
align-items: center; |
|
justify-content: center; |
|
color: #999999; |
|
z-index: 1; |
|
transition: color .4s; |
|
} |
|
|
|
.sele_Bar { |
|
/* background-color: #18B566; */ |
|
/* margin: 31rpx 40rpx; */ |
|
padding: 10rpx; |
|
display: flex; |
|
position: relative; |
|
background-color: #FFFFFF; |
|
border-radius: 10px; |
|
margin: auto; |
|
margin-top: 20rpx; |
|
width: calc(100% - 54rpx ); |
|
} |
|
</style>
|
|
|