• uniapp制作--简单的tab切换


    一、实现思路

                    在UniApp中,可以使用v-if来控制Tab栏并进行切换。  创建一个方法来控制点击时的效果。      

    二、实现步骤

            ①view部分展示

    1. <view class="select-area">
    2. <view class="select-top">
    3. <view class="course-table">
    4. <template v-for="(item,index) in changeList">
    5. <view :key="index" :class="['table-item', item.default ? 'table-item-active': '']"
    6. :style="{borderRadius: index == 0 ? '64rpx 0 0 64rpx' : '0 64rpx 64rpx 0'}"
    7. @click="changeStatus(item)">{{ item.title }}view>
    8. template>
    9. view>
    10. view>
    11. view>
    12. <view v-if="tabIndex === 0" style="padding: 32rpx">
    13. 00
    14. view>
    15. <view v-if="tabIndex === 1" style="padding: 32rpx">
    16. 11
    17. view>
    代码解释:        

                                :style="{borderRadius: index == 0 ? '64rpx 0 0 64rpx' : '0 64rpx 64rpx 0'}"

     Vue/uni-app 中的模板语法,用于渲染一个列表中的每个项目,并根据项目的属性动态设置样式。
            :key="index":这是 Vue/uni-app 中的列表渲染时必须的属性,用于给每个列表项分配唯一的键。在这里,使用了列表项的索引作为键。
            :class="['table-item', item.default ? 'table-item-active': '']":这是一个动态类绑定,根据 item 对象的 default 属性的值来决定是否添加 table-item-active 类。如果 item.default 为真,则添加 table-item-active 类;否则不添加。无论如何,都会添加 table-item 类。
            :style="{borderRadius: index == 0 ? '64rpx 0 0 64rpx' : '0 64rpx 64rpx 0'}":这是一个动态样式绑定,根据当前列表项的索引来决定边框圆角的样式。如果当前索引是第一个项(index == 0),则设置左上角和左下角的圆角为 64rpx;否则设置右上角和右下角的圆角为 64rpx。
    综合起来,这段代码的作用是渲染一个列表中的项目,并根据项目的属性动态设置类和样式。

            ②JavaScript 内容

                    

    1. tabIndex: 0,
    2. changeList: [{
    3. id: 0,
    4. title: '教务管理',
    5. default: true
    6. },
    7. {
    8. id: 1,
    9. title: '学工管理',
    10. default: false
    11. }
    12. ],
    13. //方法,在methods
    14. methods: {
    15. //点击tab跳转
    16. changeStatus(item) {
    17. let obj = this.changeList.find(v => v.default)
    18. if (obj) {
    19. obj.default = false
    20. item.default = true
    21. }
    22. this.tabIndex = item.id
    23. if (this.tabIndex == 0 && this.token) {
    24. this.getScheduleList()
    25. } else if (this.tabIndex == 1 && this.token) {
    26. this.getPracticeList()
    27. }
    28. },
    29. }

            ③css中样式展示

    1. //
    2. .select-area {
    3. padding: 0 0 12rpx 0;
    4. background-color: #fff;
    5. }
    6. .select-top {
    7. position: relative;
    8. width: 100%;
    9. height: 88rpx;
    10. .course-table {
    11. position: absolute;
    12. top: 50%;
    13. left: 50%;
    14. transform: translate(-50%, -50%);
    15. display: flex;
    16. align-items: center;
    17. width: 408rpx;
    18. height: 64rpx;
    19. background-color: #fff;
    20. border-radius: 64rpx;
    21. border: 2rpx solid #5990F5;
    22. // overflow: hidden;
    23. .table-item {
    24. letter-spacing: 2rpx;
    25. width: 50%;
    26. line-height: 64rpx;
    27. font-size: 28rpx;
    28. font-family: PingFang SC, PingFang SC;
    29. color: #5990F5;
    30. text-align: center;
    31. }
    32. .table-item-active {
    33. color: #fff;
    34. border: 2rpx solid transparent;
    35. background-color: #5990F5;
    36. }
    37. }
    38. }

    三、效果展示

       

    以上是一个简单的tab切换,主要使用了三元一次式来提交点击跳转时的样式。

  • 相关阅读:
    查看linux系统情况常用命令
    DC电源模块电容滤波器的原理及构成
    LeetCode【42】接雨水
    高等数学(第七版)同济大学 习题7-3 个人解答
    医疗软件制造商如何实施静态分析,满足 FDA 医疗器械网络安全验证
    petite-vue-源码剖析-v-for重新渲染工作原理
    离子交换树脂在除氨氮领域的应用
    这13个不经意却很不卫生的行为,很多人都没意识到
    VoLTE端到端业务详解 | 移动性管理类
    linux下安装maven(详细图文教程)
  • 原文地址:https://blog.csdn.net/weixin_54721820/article/details/136376940