uni-app如何实现一个简单的选项卡

基础:
1.v-show显示隐藏
2.click点击事件
3.三目运算

 

步骤说明:
1.先写一个外框,在抒写2个内容,先把选项卡固定在顶部使用display: flex;,随后写2个不同的样式去区分选中和未选择

 

2.三目运算分别给他们赋一个排序,点击的时候获取是第一个还是第二个,如果选中则添加inv-h-se样式

 

3.return中默认显示第一个

 

4.最后写2个不同的容器,使用v-show来切换

 

<template>
        <view>
                <view class="inv-h-w">
                        <view :class="['inv-h',Inv==0?'inv-h-se':'']" @click="Inv=0">选项卡1</view>
                        <view :class="['inv-h',Inv==1?'inv-h-se':'']" @click="Inv=1">我是选项卡二</view>
                </view>
                <view class="" v-show="Inv == 0">
                        我是选项卡一
                </view>
                <view class="" v-show="Inv == 1">
                        我是选项卡二
                </view>
        </view>
</template>
 
<script>
        export default {
                data() {
                        return {
                                Inv:0
                        }
                },
                methods: {
                        changeTab(Inv){
                                that.navIdx = Inv;
                                 
                        },
                }
        }
</script>
         
<style>
        .inv-h-w{background-color: #FFFFFF;height: 100upx;display: flex;}
        .inv-h{font-size: 30upx;flex: 1;text-align: center;color: #C9C9C9;height: 100upx;line-height: 100upx;}
        .inv-h-se{color: #5BA7FF;border-bottom: 4upx solid #5BA7FF;}
        page{background-color: #F2F2F2;}
</style>

效果如图:

  

好的,以下是一个简单的美团提交订单页面选项卡的示例代码,使用uni-app框架进行开发: ```html <template> <view class="container"> <view class="tab-bar"> <view class="tab-item" :class="{ active: currentTab === 'delivery' }" @tap="onTabClick('delivery')" > <text class="tab-title">外卖配送</text> </view> <view class="tab-item" :class="{ active: currentTab === 'takeout' }" @tap="onTabClick('takeout')" > <text class="tab-title">自取</text> </view> <view class="tab-item" :class="{ active: currentTab === 'dinein' }" @tap="onTabClick('dinein')" > <text class="tab-title">堂食</text> </view> </view> <view class="tab-content"> <view v-show="currentTab === 'delivery'"> <!-- 外卖配送内容 --> </view> <view v-show="currentTab === 'takeout'"> <!-- 自取内容 --> </view> <view v-show="currentTab === 'dinein'"> <!-- 堂食内容 --> </view> </view> </view> </template> <script> export default { data() { return { currentTab: 'delivery' }; }, methods: { onTabClick(tab) { this.currentTab = tab; } } }; </script> <style> .container { display: flex; flex-direction: column; height: 100vh; } .tab-bar { display: flex; justify-content: space-between; align-items: center; padding: 20rpx; background-color: #fff; } .tab-item { flex: 1; text-align: center; font-size: 28rpx; color: #999; border-bottom: 2rpx solid transparent; } .active { color: #ff5c4d; border-color: #ff5c4d; } .tab-content { flex: 1; padding: 20rpx; } </style> ``` 该示例代码使用了flex布局实现页面的排版,选项卡部分使用了`v-show`指令来控制不同内容的显示和隐藏,触发选项卡切换的事件使用了`@tap`指令绑定一个方法,在方法更新`currentTab`变量的值。同时,使用了:class指令来动态控制选项卡的样式。 请注意,该示例代码只是一个简单实现,具体的样式和功能可以根据需求进行修改和扩展。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值