当前位置: 首页 > 知识库问答 >
问题:

vue.js - 如何在Element UI的el-tabs中实现联动滚动条和左右选择器?

戎泰
2024-10-11

element-ui 中 el-tabs如何让它超出固定宽度显示滚动条+左右选择器

<div style="margin-bottom: 20px;">
  <el-button
    size="small"
    @click="addTab(editableTabsValue)"
  >
    add tab
  </el-button>
</div>
<el-tabs v-model="editableTabsValue" type="card" closable @tab-remove="removeTab">
  <el-tab-pane
    v-for="(item, index) in editableTabs"
    :key="item.name"
    :label="item.title"
    :name="item.name"
  >
    {{item.content}}
  </el-tab-pane>
</el-tabs>
<script>
  export default {
    data() {
      return {
        editableTabsValue: '2',
        editableTabs: [{
          title: 'Tab 1',
          name: '1',
          content: 'Tab 1 content'
        }, {
          title: 'Tab 2',
          name: '2',
          content: 'Tab 2 content'
        }],
        tabIndex: 2
      }
    },
    methods: {
      addTab(targetName) {
        let newTabName = ++this.tabIndex + '';
        this.editableTabs.push({
          title: 'New Tab',
          name: newTabName,
          content: 'New Tab content'
        });
        this.editableTabsValue = newTabName;
      },
      removeTab(targetName) {
        let tabs = this.editableTabs;
        let activeName = this.editableTabsValue;
        if (activeName === targetName) {
          tabs.forEach((tab, index) => {
            if (tab.name === targetName) {
              let nextTab = tabs[index + 1] || tabs[index - 1];
              if (nextTab) {
                activeName = nextTab.name;
              }
            }
          });
        }
        
        this.editableTabsValue = activeName;
        this.editableTabs = tabs.filter(tab => tab.name !== targetName);
      }
    }
  }
</script>
<style>
.el-tabs {
    width: 500px;
}
.el-tabs__nav-scroll {
    overflow-x: auto;
}
</style>

目前按照以上写法,会实现滚动条+左右选择器,但是滚动条和选择器不是联动效果。如果我点击选择器,展示到最后一个tab-pane,在滑动滚动条时,最后一个tab-pane后边会有一片白,并且滚动条无法滚动到第一个tab-pane

共有1个答案

谭池暝
2024-10-11

点击左右选择器滚动用的是 transform: translateX(?px)
兼容滚动条的话要自定义左右选择器或者 自定义滚动条-滚动条监听transform的数值
建议自定义左右选择器,用两个按钮控制滚动条位置就可以了

 类似资料:
  • 本文向大家介绍javascript实现左右控制无缝滚动,包括了javascript实现左右控制无缝滚动的使用技巧和注意事项,需要的朋友参考一下 无缝滚动是项目中经常需要用到的一种特效,网上也有很多的示例代码,这里给大家分享的是一段比较简单实用的,而且兼容性也不错的代码,小伙伴们仔细研究下吧。 html 代码: CSS代码 js:代码 效果是不是非常棒呢。

  • 如何在中实现或。一个简单的例子很有帮助。

  • 本文向大家介绍.net中实现listBox左右移动,包括了.net中实现listBox左右移动的使用技巧和注意事项,需要的朋友参考一下 今天用到listbox左右移动在网上找了一个,网友分享出来的,感觉不错,这里推荐给大家 以上所述就是本文的全部内容了,希望对大家熟练使用listbox能够有所帮助。

  • 问题内容: 是否可以为div上的垂直滚动条指定位置(左侧或右侧)? 其中说明了如何使用溢出属性。有什么方法可以将滚动条放在可滚动区域的左侧? 问题答案: 要么 适用于所有主要浏览器(甚至是Safari)的剪切和粘贴解决方案 任何高度或宽度都可以 (可选)添加到每个项目中,以更改文本回流的方向,同时保留容器的方向。

  • 本文向大家介绍jQuery实现分隔条左右拖动功能,包括了jQuery实现分隔条左右拖动功能的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery实现分隔条左右拖动功能的实现代码。分享给大家供大家参考。具体如下: 运行效果截图如下: 具体内容如下 希望本文所述对大家学习jquery分隔条有所帮助。

  • 本文向大家介绍快速解决jquery.touchSwipe左右滑动和垂直滚动条冲突,包括了快速解决jquery.touchSwipe左右滑动和垂直滚动条冲突的使用技巧和注意事项,需要的朋友参考一下 本文为大家分享了jquery.touchSwipe左右滑动和垂直滚动条冲突问题的解决方法,具体内容如下 正好需要Html5做一个左右可以切换的功能,但是要保留上下滚动条功能。我在移动端使用的jquery.