• 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切换,主要使用了三元一次式来提交点击跳转时的样式。

  • 相关阅读:
    超详细!手把手带你实现一个完整的Promise
    ClickHouse 存算分离改造:小红书自研云原生数据仓库实践
    Excel INDEX MATCH教程之 什么是INDEX MATCH,有什么用(教程含案例)
    geneious中有的功能无法使用
    linux内核各方向资料贴
    个人开发常用idea插件
    C++ Python网易云音乐播放器
    PHP 员工工资管理系统mysql数据库web结构apache计算机软件工程网页wamp
    速度是 macOS 的两倍?首个支持 M1 Mac 的 Linux 发行版终于出现
    什么是多态,instanceof,类型转换
  • 原文地址:https://blog.csdn.net/weixin_54721820/article/details/136376940