Компонент для автоматического скрытия элементов с динамической адаптацией под ширину контейнера.

Поддерживает два режима работы:

  • Скрытие с конца (по умолчанию).
  • Скрытие с начала.

Настраивается при помощи атрибута reverseOverflowOrder.

Item0 Item1 Item2 Item3 Item4 Item5 Item6 Item7 Item8 Item9 Item10 Item11 Item12 Item13 Item14 Item15 Item16 Item17 Item18 Item19
and 0 more

Порядок скрываемых элементов задается с помощью атрибута order для директивы KbqOverflowItem.

Item0 Item1 Item2 Item3 Item4 Item5 Item6 Item7 Item8 Item9 Item10 Item11 Item12 Item13 Item14 Item15 Item16 Item17 Item18 Item19
and 0 more

Если необходимо, чтобы некоторые элементы всегда оставались видимыми, можно использовать атрибут alwaysVisible для директивы KbqOverflowItem.

Item0 Item1 Item2 Item3 Item4 Item5 Item6 Item7 Item8 Item9 Item10 Item11 Item12 Item13 Item14 Item15 Item16 Item17 Item18 Item19
and 0 more

Выравнивание элементов внутри контейнера задается с помощью CSS-свойства justify-content.

Item0 Item1 Item2 Item3 Item4 Item5 Item6
and 0 more

По умолчанию скрытие элементов происходит по горизонтали. Если необходимо скрывать элементы по вертикали, можно использовать атрибут orientation="vertical".

Item0 Item1 Item2 Item3 Item4 Item5 Item6 Item7 Item8 Item9 Item10 Item11 Item12 Item13 Item14 Item15 Item16 Item17 Item18 Item19
and 0 more

Задержка скрытия/отображения элементов задается с помощью атрибута debounceTime. Включение этой опции позитивно сказывается на производительности при большом количестве элементов, либо при частых изменениях размера контейнера.

<div kbqOverflowItems [debounceTime]="300">...</div>

Иногда размер контейнера может изменяться не только при изменении размера окна браузера, но и при изменении размеров других элементов на странице (например: Sidebar). Для отслеживания таких изменений можно использовать атрибут additionalResizeObserverTargets. Атрибут принимает либо один элемент, либо массив элементов, изменение размеров которых приведет к пересчету скрытых элементов. По умолчанию отслеживается document.body.

<div kbqOverflowItems [additionalResizeObserverTargets]="sidebarContainerElement">...</div>
Предложения по улучшению
Если вы нашли ошибку или хотите доработать статью, создайте запрос на GitHub.