首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

Element ui tabs组件左右箭头切换 (第一项为固定项)

  • 24-03-18 01:02
  • 3940
  • 13007
blog.csdn.net

之前发布过一篇关于切换的 但是有点瑕疵 这次补充一下

  1. <template>
  2. <div style="margin: 10px 10px; border: 1px solid rgb(212, 209, 209); border-radius: 10px; overflow: hidden; box-shadow: 0px 0px 12px -6px;">
  3. <!-- 导航栏 -->
  4. <div class="TAb">
  5. //这个v-if是渲染的条数少于几条的话左右箭头不展示 没有需求可不加
  6. <div class="xiangzuo" @click="leftChange()" v-if="changePage">
  7. <!-- 左箭头 -->
  8. <i class="el-icon-arrow-left"></i>
  9. </div>
  10. <el-tabs class="TAB" v-model="activeIndex" @tab-click="handleClick" scrollable="true">
  11. <!-- 固定项 -->
  12. <el-tab-pane v-if="showFixedTab" label="地名信息" name="fixed">
  13. <!-- 固定项内容 -->
  14. <!-- //在这加了一个判断 如果渲染的数据没有值的话就不展示这一行 -->
  15. <div class="text-container" v-if="item.valueName != '' && item.valueName != null " v-for="(item,index) in infoData" :key="index">
  16. <span class="first">{{ index}}: </span> <span class="text">{{ item.valueName }}</span>
  17. </div>
  18. <!-- ... -->
  19. </el-tab-pane>
  20. <!-- 其他项 -->
  21. <el-tab-pane v-for="(item, index) in tabsList" :key="index" :label="item.label" :name="index.toString()" style="padding: 0px 10px;">
  22. <!-- 定义不同的切换列表样式 -->
  23. <span v-html="item.name"></span>
  24. <!-- <slot :name="item.key" :index="index" /> -->
  25. </el-tab-pane>
  26. </el-tabs>
  27. <div class="xiangyou" @click="rightChange()" v-if="changePage">
  28. <!-- 右箭头 -->
  29. <i class="el-icon-arrow-right"></i>
  30. </div>
  31. </div>

data里没啥可看的 就是要渲染的数据定义

  1. data() {
  2. return {
  3. //默认选中的项
  4. activeIndex: "",
  5. tabsList: [],
  6. // 测试数据
  7. // testMock: [
  8. // {label:'暂无数据',name:'暂无数据'},
  9. // {label:'暂无数据',name:'暂无数据'},
  10. // {label:'暂无数据',name:'暂无数据'},
  11. // ],
  12. // activeTab: this.defaultActiveTab
  13. // 切换页显示与隐藏
  14. changePage: true,
  15. showFixedTab:true
  16. };
  17. },

在生命周期里刚开始的时候判断了一下 看是否添加固定项 因为我这个是组件

  1. created() {
  2. this.activeIndex = this.showFixedTab ? 'fixed' : '0';
  3. },

这个是判断条数低于几条的时候不展示左右箭头 有需求的话看是开局就添加还是监测到数据了在触发方法都一样

  1. if (this.tabsList != null && this.tabsList.length < 3) {
  2. this.changePage = false
  3. } else if (this.tabsList != null && this.tabsList.length > 3) {
  4. this.changePage = true
  5. } else {
  6. this.changePage = false
  7. }

最后就是方法

  1. leftChange() {
  2. const currentIndex = parseInt(this.activeIndex);
  3. if (currentIndex > 0) {
  4. this.activeIndex = (currentIndex - 1).toString();
  5. } else if (currentIndex === 0 && this.showFixedTab) {
  6. this.activeIndex = 'fixed';
  7. }
  8. },
  9. rightChange() {
  10. //因为我是将他的下标当默认选中的数据为依据的所以转化为数值型
  11. const currentIndex = parseInt(this.activeIndex);
  12. const lastIndex = this.tabsList.length - 1;
  13. if (currentIndex < lastIndex) {
  14. this.activeIndex = (currentIndex + 1).toString();
  15. //如果选中的数据为最大值了 切换到fixed项
  16. } else if (currentIndex === lastIndex && this.showFixedTab) {
  17. this.activeIndex = 'fixed';
  18. //如果为fixed项就切换到数据的0项
  19. } else if (this.activeIndex == 'fixed') {
  20. this.activeIndex = '0';
  21. }
  22. },
  23. handleClick(tab) {
  24. if (tab.name !== 'fixed') {
  25. this.activeIndex = tab.name;
  26. }

兄弟们看需求改改吧

注:本文转载自blog.csdn.net的CV工程师!!的文章"https://blog.csdn.net/m0_65607651/article/details/130917331"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

130
用户体验设计
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top