0

有什么方法可以处理选项卡数量超过可用宽度可以显示的情况?

我有一个场景,从导航中选择的项目在新选项卡中动态打开(或者如果它已经打开,则活动选项卡会更改)。碰巧的是,在给定时间打开的选项卡数量很可能超过宽度可以显示的数量。我似乎在文档中找不到任何可以让我处理这种情况的东西。我一直在寻找至少使用一个appendTo或类似的可能性,我可以将标签标题和标签内容的容器分开,这样我就可以做一些按钮来单独向左或向右滚动标题。

当标签很少时,这很棒: 在此处输入图像描述

但是如果它们中的更多是打开的,则导航中断并且容器会获得一个水平滚动条,因为没有更多可用空间: 在此处输入图像描述

我的目标是有这样的东西(用箭头按钮导航到隐藏的标签): 在此处输入图像描述

编辑 好的,所以我找到了这个javascript kendo scrollable tabs。这正是我的想法,但我无法用 angular kendo-ui 实​​现这一点

4

1 回答 1

1

好吧,没有开箱即用的水平滚动条,但选项卡的集合可以是一个变量。所以在这种情况下你可以实现一些简单的分页。就像是

import { Component } from '@angular/core';

@Component({
    selector: 'app-list',
    templateUrl: './list.component.html'
})
export class ListComponent {

    public allTabs = [ 
        { name: '1111', content: ' content 1 '},
        { name: '2222', content: ' content 2 '}
        { name: '3333', content: ' content 3 '}
        { name: '4444', content: ' content 4 '}
        { name: '5555', content: ' content 5 '}
    ];

    public totalPages = 0;

    public currentTabs = this.allTabs.slice(0, 2);

    public pageSize: number = 2;

    public currentPage = 1;

    public nextPage() {
        this.currentPage++;
        this.currentTabs = this.allTabs.slice((this.currentPage - 1) * this.pageSize, (this.currentPage) * this.pageSize);
    }

    public prevPage() {
        this.currentPage--;
        this.currentTabs = this.allTabs.slice((this.currentPage - 1) * this.pageSize, (this.currentPage) * this.pageSize);
    }

    constructor (){
        this.totalPages = Math.round(this.allTabs.length / this.pageSize);
    }
}

和模板

<kendo-tabstrip [ngStyle]="{'width': '400px'}">
    <kendo-tabstrip-tab
      *ngFor="let item of currentTabs; let i=index"
      [title]="item.name"
      [selected]="i === 0"      
    >
        <ng-template kendoTabContent>
          {{  item.content }}
        </ng-template>
    </kendo-tabstrip-tab>
  </kendo-tabstrip>

  <button type="button" (click)="prevPage()" [disabled]="currentPage === 1">Prev</button>
  <button type="button" (click)="nextPage()" [disabled]="currentPage === totalPages">Next</button>

有点假的卷轴:)

于 2017-12-18T16:30:09.963 回答