• Vue3实现带动画效果的tab栏切换


    效果图如下所示:

    实现思路:

    其实很简单

    1、首先切换tab栏时tab标签激活下标与对应显示内容下标要一致。

    2、其次点击tab栏切换时更新下标

    3、最后就是css添加动画效果

    这样就了!!!

    上全部代码

    1. <script setup>
    2. import { ref } from 'vue';
    3. const tabIndex = ref(0);
    4. const tabs = ['tab栏1', 'tab栏2', 'tab栏3', 'tab栏4'];
    5. const contents=[
    6. {
    7. id:'1',
    8. name:'内容1',
    9. pic:'',
    10. title:'tab栏一区域'
    11. },
    12. {
    13. id:'2',
    14. name:'内容2',
    15. pic:'',
    16. title:'tab栏二区域'
    17. },
    18. {
    19. id:'3',
    20. name:'内容3',
    21. pic:'',
    22. title:'tab栏三区域'
    23. },
    24. {
    25. id:'4',
    26. name:'内容4',
    27. pic:'',
    28. title:'tab栏四区域'
    29. }
    30. ];
    31. const changeTab = (index) => {
    32. tabIndex.value = index;
    33. };
    34. script>
    35. <style lang="scss" scoped>
    36. .container {
    37. width: 96%;
    38. margin: 2%;
    39. }
    40. .tab-nav ul{//ul默认有40左边距
    41. padding-left: 0px !important;
    42. }
    43. ul li {
    44. margin: 0;
    45. padding: 0;
    46. list-style: none;
    47. }
    48. .tab-tilte {
    49. display: flex;
    50. }
    51. .tab-tilte li {
    52. flex: 1;
    53. padding: 10px;
    54. text-align: center;
    55. background-color: #f4f4f4;
    56. cursor: pointer;
    57. transition: background-color 0.3s; /* 添加过渡效果 */
    58. }
    59. /* 点击对应的标题添加对应的背景颜色 */
    60. .tab-tilte .active {
    61. background-color: #09f;
    62. color: #fff;
    63. }
    64. .tab-content {
    65. display: flex;
    66. transition: transform 0.5s ease; /* 添加过渡效果,并使用缓动函数 */
    67. }
    68. .tab-item {
    69. flex: 1;
    70. min-width: 96%;
    71. margin: 2%;
    72. line-height: 100px;
    73. text-align: left;
    74. background: rgb(0, 255, 200);
    75. }
    76. style>

  • 相关阅读:
    pgzrun 拼图游戏制作过程详解(8,9)
    挠场的科学丨五、二十一世纪的挠力文明
    MarkDown语法超详细讲解
    程序员的编程格言
    浅梳理JS对字符串的操作
    HTML 学习笔记 总结
    Spring (5)—声明式事务控制
    封装一个滑块控制灯光组件
    【Python机器学习】零基础掌握SpectralCoclustering聚类
    DSP 开发教程(0): 汇总
  • 原文地址:https://blog.csdn.net/weixin_53339757/article/details/136186897