Фильтр

Фильтруйте или сортируйте элементы в любом заданном формате по метаданным.

Что можно сделать с компонентом Фильтр смотрите в разделе примеры.

Компонент Filter часто используется вместе с компонентом Сетка и Masonry. Любой макет может быть отфильтрован или отсортирован независимо от того, как элементы расположены. Элементы исчезают и перемещаются с плавными переходами между различными состояниями фильтрации и сортировки.


Как использовать компонент Filter в UIkit 3. Уникальная фильтрация на лету.

Для начала работы с компонентом этот сосздайте элемент контейнера с атрибутом uk-filter="target: SELECTOR". Внутри этого контейнера создайте список элементов управления фильтром, а также элементы макета, которые вы хотите фильтровать. Используйте опцию target: SELECTOR, чтобы связать переключатели со списком элементов, которые будут фильтроваться.

<div uk-filter="target: .js-filter">

    <!-- Управление -->
    <ul>
        <li><a href="#"></a></li>
    </ul>

    <!-- Элементы для фильтрации -->
    <ul class="js-filter">
        <li></li>
    </ul>

</div>

Далее нужно определить метаданные для каждого элемента макета, например, к какой категории принадлежит элемент. Используйте любой класс или атрибут HTML для этого.

Чтобы активировать элемент управления фильтром, добавьте атрибут uk-filter-control. Чтобы определить метаданные, которые должны быть отфильтрованы, используйте опцию filter: SELECTOR. Селектором может быть любой селектор CSS, например, класс HTML или атрибут, который вы определяете для элементов макета.

<div uk-filter="target: .js-filter">

    <ul>
        <li uk-filter-control="filter: .tag-blue"><a href="#"></a></li>
    </ul>

    <ul class="js-filter">
        <li class="tag-blue"></li>
    </ul>

</div>

Если target является единственной опцией в значении атрибутаuk-filter, вы также можете использовать uk-filter =" SELECTOR ". То же самое относится к фильтру управления. Если filter является единственной опцией в значении атрибутаuk-filter-control, вы можете указать просто uk-filter-control="SELECTOR".

<div uk-filter=".js-filter">

    <ul>
        <li uk-filter-control=".tag-blue"><a href="#"></a></li>
    </ul>

    <ul class="js-filter">
        <li class="tag-blue"></li>
    </ul>

</div>
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
  • <div uk-filter="target: .js-filter">
    
        <ul class="uk-subnav uk-subnav-pill">
            <li uk-filter-control=".tag-white"><a href="#">Белый</a></li>
            <li uk-filter-control=".tag-blue"><a href="#">Синий</a></li>
            <li uk-filter-control=".tag-black"><a href="#">Черный</a></li>
        </ul>
    
        <ul class="js-filter uk-child-width-1-2 uk-child-width-1-3@m uk-text-center" uk-grid>
            <li class="tag-white">
                <div class="uk-card uk-card-default uk-card-body">Элемент</div>
            </li>
            <li class="tag-blue">
                <div class="uk-card uk-card-primary uk-card-body">Элемент</div>
            </li>
            <li class="tag-white">
                <div class="uk-card uk-card-default uk-card-body">Элемент</div>
            </li>
            <li class="tag-white">
                <div class="uk-card uk-card-default uk-card-body">Элемент</div>
            </li>
            <li class="tag-black">
                <div class="uk-card uk-card-secondary uk-card-body">Элемент</div>
            </li>
            <li class="tag-black">
                <div class="uk-card uk-card-secondary uk-card-body">Элемент</div>
            </li>
            <li class="tag-blue">
                <div class="uk-card uk-card-primary uk-card-body">Элемент</div>
            </li>
            <li class="tag-black">
                <div class="uk-card uk-card-secondary uk-card-body">Элемент</div>
            </li>
            <li class="tag-blue">
                <div class="uk-card uk-card-primary uk-card-body">Элемент</div>
            </li>
            <li class="tag-white">
                <div class="uk-card uk-card-default uk-card-body">Элемент</div>
            </li>
            <li class="tag-blue">
                <div class="uk-card uk-card-primary uk-card-body">Элемент</div>
            </li>
            <li class="tag-black">
                <div class="uk-card uk-card-secondary uk-card-body">Элемент</div>
            </li>
        </ul>
    
    </div>

Компонент Filter поставляется без стиля, что позволяет использовать любые другие компоненты UIkit 3 для создания элементов управления фильтра и макета Элемент. Например, компоненты Nav, Subnav и Tab могут быть использованы для стилизации элементов управления фильтра. Компонент Grid component используется для создания сетки.


Активное состояние

Добавьте класс .uk-active к элементу управления фильтра, и фильтр будет применен изначально.

<li class="uk-active" uk-filter-control="[data-color='blue']">...</li>
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
  • <div uk-filter="target: .js-filter">
    
        <ul class="uk-subnav uk-subnav-pill">
            <li class="uk-active" uk-filter-control="[data-color='white']"><a href="#">Белый</a></li>
            <li uk-filter-control="[data-color='blue']"><a href="#">Синий</a></li>
            <li uk-filter-control="[data-color='black']"><a href="#">Черный</a></li>
        </ul>
    
        <ul class="js-filter uk-child-width-1-2 uk-child-width-1-3@m uk-text-center" uk-grid>
            <li data-color="white">
                <div class="uk-card uk-card-default uk-card-body">Элемент</div>
            </li>
            <li data-color="blue">
                <div class="uk-card uk-card-primary uk-card-body">Элемент</div>
            </li>
            <li data-color="white">
                <div class="uk-card uk-card-default uk-card-body">Элемент</div>
            </li>
            <li data-color="white">
                <div class="uk-card uk-card-default uk-card-body">Элемент</div>
            </li>
            <li data-color="black">
                <div class="uk-card uk-card-secondary uk-card-body">Элемент</div>
            </li>
            <li data-color="black">
                <div class="uk-card uk-card-secondary uk-card-body">Элемент</div>
            </li>
            <li data-color="blue">
                <div class="uk-card uk-card-primary uk-card-body">Элемент</div>
            </li>
            <li data-color="black">
                <div class="uk-card uk-card-secondary uk-card-body">Элемент</div>
            </li>
            <li data-color="blue">
                <div class="uk-card uk-card-primary uk-card-body">Элемент</div>
            </li>
            <li data-color="white">
                <div class="uk-card uk-card-default uk-card-body">Элемент</div>
            </li>
            <li data-color="blue">
                <div class="uk-card uk-card-primary uk-card-body">Элемент</div>
            </li>
            <li data-color="black">
                <div class="uk-card uk-card-secondary uk-card-body">Элемент</div>
            </li>
        </ul>
    
    </div>

Сброс фильтра

Чтобы сбросить фильтр и выбрать все элементы, используйте атрибут uk-filter-control без какого-либо селектора.

<li uk-filter-control>...</li>
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
  • <div uk-filter="target: .js-filter">
    
        <ul class="uk-subnav uk-subnav-pill">
            <li class="uk-active" uk-filter-control><a href="#">Все</a></li>
            <li uk-filter-control="[data-color='white']"><a href="#">Белый</a></li>
            <li uk-filter-control="[data-color='blue']"><a href="#">Синий</a></li>
            <li uk-filter-control="[data-color='black']"><a href="#">Черный</a></li>
        </ul>
    
        <ul class="js-filter uk-child-width-1-2 uk-child-width-1-3@m uk-text-center" uk-grid>
            <li data-color="white">
                <div class="uk-card uk-card-default uk-card-body">Элемент</div>
            </li>
            <li data-color="blue">
                <div class="uk-card uk-card-primary uk-card-body">Элемент</div>
            </li>
            <li data-color="white">
                <div class="uk-card uk-card-default uk-card-body">Элемент</div>
            </li>
            <li data-color="white">
                <div class="uk-card uk-card-default uk-card-body">Элемент</div>
            </li>
            <li data-color="black">
                <div class="uk-card uk-card-secondary uk-card-body">Элемент</div>
            </li>
            <li data-color="black">
                <div class="uk-card uk-card-secondary uk-card-body">Элемент</div>
            </li>
            <li data-color="blue">
                <div class="uk-card uk-card-primary uk-card-body">Элемент</div>
            </li>
            <li data-color="black">
                <div class="uk-card uk-card-secondary uk-card-body">Элемент</div>
            </li>
            <li data-color="blue">
                <div class="uk-card uk-card-primary uk-card-body">Элемент</div>
            </li>
            <li data-color="white">
                <div class="uk-card uk-card-default uk-card-body">Элемент</div>
            </li>
            <li data-color="blue">
                <div class="uk-card uk-card-primary uk-card-body">Элемент</div>
            </li>
            <li data-color="black">
                <div class="uk-card uk-card-secondary uk-card-body">Элемент</div>
            </li>
        </ul>
    
    </div>

Мета-данные

Элемент может иметь разные метаданные для фильтрации. Вам просто нужно определить классы HTML или data Этот пример использует data атрибуты вместо классов HTML.

<div uk-filter="target: .js-filter">

    <ul>
        <li uk-filter-control="[data-tags*='blue']"><a href="#"></a></li>
    </ul>

    <ul class="js-filter">
        <li data-tags="blue dark"></li>
    </ul>

</div>
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
  • <div uk-filter="target: .js-filter">
    
        <ul class="uk-subnav uk-subnav-pill">
            <li uk-filter-control="[data-tags*='white']"><a href="#">Белый</a></li>
            <li uk-filter-control="[data-tags*='blue']"><a href="#">Синий</a></li>
            <li uk-filter-control="[data-tags*='black']"><a href="#">Черный</a></li>
            <li uk-filter-control="[data-tags*='dark']"><a href="#">Темный</a></li>
        </ul>
    
        <ul class="js-filter uk-child-width-1-2 uk-child-width-1-3@m uk-text-center" uk-grid>
            <li data-tags="white">
                <div class="uk-card uk-card-default uk-card-body">Элемент</div>
            </li>
            <li data-tags="blue dark">
                <div class="uk-card uk-card-primary uk-card-body">Элемент</div>
            </li>
            <li data-tags="white">
                <div class="uk-card uk-card-default uk-card-body">Элемент</div>
            </li>
            <li data-tags="white">
                <div class="uk-card uk-card-default uk-card-body">Элемент</div>
            </li>
            <li data-tags="black dark">
                <div class="uk-card uk-card-secondary uk-card-body">Элемент</div>
            </li>
            <li data-tags="black dark">
                <div class="uk-card uk-card-secondary uk-card-body">Элемент</div>
            </li>
            <li data-tags="blue dark">
                <div class="uk-card uk-card-primary uk-card-body">Элемент</div>
            </li>
            <li data-tags="black dark">
                <div class="uk-card uk-card-secondary uk-card-body">Элемент</div>
            </li>
            <li data-tags="blue dark">
                <div class="uk-card uk-card-primary uk-card-body">Элемент</div>
            </li>
            <li data-tags="white">
                <div class="uk-card uk-card-default uk-card-body">Элемент</div>
            </li>
            <li data-tags="blue dark">
                <div class="uk-card uk-card-primary uk-card-body">Элемент</div>
            </li>
            <li data-tags="black dark">
                <div class="uk-card uk-card-secondary uk-card-body">Элемент</div>
            </li>
        </ul>
    
    </div>

Несколько фильтров

Определите различные типы метаданных и добавьте любое количество элементов управления для их фильтрации. Элементы управления фильтрами являются уникальными, то есть одновременно фильтруется только один критерий.

<div uk-filter="target: .js-filter">

    <ul>
        <li uk-filter-control="[data-color='blue']"><a href="#"></a></li>
    </ul>

    <ul>
        <li uk-filter-control="[data-size='small']"><a href="#"></a></li>
    </ul>

    <ul class="js-filter">
        <li data-color="blue" data-size="small"></li>
    </ul>

</div>
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
  • <div uk-filter="target: .js-filter">
    
        <div class="uk-grid-small uk-grid-divider uk-child-width-auto" uk-grid>
            <div>
                <ul class="uk-subnav uk-subnav-pill" uk-margin>
                    <li class="uk-active" uk-filter-control><a href="#">Все</a></li>
                </ul>
            </div>
            <div>
                <ul class="uk-subnav uk-subnav-pill" uk-margin>
                    <li uk-filter-control="[data-color='white']"><a href="#">Белый</a></li>
                    <li uk-filter-control="[data-color='blue']"><a href="#">Синий</a></li>
                    <li uk-filter-control="[data-color='black']"><a href="#">Черный</a></li>
                </ul>
            </div>
            <div>
                <ul class="uk-subnav uk-subnav-pill" uk-margin>
                    <li uk-filter-control="[data-size='small']"><a href="#">Маленький</a></li>
                    <li uk-filter-control="[data-size='medium']"><a href="#">Средний</a></li>
                    <li uk-filter-control="[data-size='large']"><a href="#">Большой</a></li>
                </ul>
            </div>
        </div>
    
        <ul class="js-filter uk-child-width-1-2 uk-child-width-1-3@m uk-text-center" uk-grid="masonry: true">
            <li data-color="white" data-size="large">
                <div class="uk-card uk-card-default uk-card-body">
                    <canvas width="600" height="800"></canvas>
                    <div class="uk-position-center">Элемент</div>
                </div>
            </li>
            <li data-color="blue" data-size="small">
                <div class="uk-card uk-card-primary uk-card-body">
                    <canvas width="600" height="400"></canvas>
                    <div class="uk-position-center">Элемент</div>
                </div>
            </li>
            <li data-color="white" data-size="medium">
                <div class="uk-card uk-card-default uk-card-body">
                    <canvas width="600" height="600"></canvas>
                    <div class="uk-position-center">Элемент</div>
                </div>
            </li>
            <li data-color="white" data-size="small">
                <div class="uk-card uk-card-default uk-card-body">
                    <canvas width="600" height="400"></canvas>
                    <div class="uk-position-center">Элемент</div>
                </div>
            </li>
            <li data-color="black" data-size="medium">
                <div class="uk-card uk-card-secondary uk-card-body">
                    <canvas width="600" height="600"></canvas>
                    <div class="uk-position-center">Элемент</div>
                </div>
            </li>
            <li data-color="black" data-size="small">
                <div class="uk-card uk-card-secondary uk-card-body">
                    <canvas width="600" height="400"></canvas>
                    <div class="uk-position-center">Элемент</div>
                </div>
            </li>
            <li data-color="blue" data-size="medium">
                <div class="uk-card uk-card-primary uk-card-body">
                    <canvas width="600" height="600"></canvas>
                    <div class="uk-position-center">Элемент</div>
                </div>
            </li>
            <li data-color="black" data-size="large">
                <div class="uk-card uk-card-secondary uk-card-body">
                    <canvas width="600" height="800"></canvas>
                    <div class="uk-position-center">Элемент</div>
                </div>
            </li>
            <li data-color="blue" data-size="large">
                <div class="uk-card uk-card-primary uk-card-body">
                    <canvas width="600" height="800"></canvas>
                    <div class="uk-position-center">Элемент</div>
                </div>
            </li>
            <li data-color="white" data-size="large">
                <div class="uk-card uk-card-default uk-card-body">
                    <canvas width="600" height="800"></canvas>
                    <div class="uk-position-center">Элемент</div>
                </div>
            </li>
            <li data-color="blue" data-size="medium">
                <div class="uk-card uk-card-primary uk-card-body">
                    <canvas width="600" height="600"></canvas>
                    <div class="uk-position-center">Элемент</div>
                </div>
            </li>
            <li data-color="black" data-size="small">
                <div class="uk-card uk-card-secondary uk-card-body">
                    <canvas width="600" height="400"></canvas>
                    <div class="uk-position-center">Элемент</div>
                </div>
            </li>
        </ul>
    
    </div>

Группы

Для фильтрации элементов по нескольким критериям одновременно необходимо сгруппировать элементы управления фильтрами. Задайте опцию group: NAME для атрибута uk-filter-control и определите имена групп для метаданных.

<div uk-filter="target: .js-filter">

    <ul>
        <li uk-filter-control="filter: [data-color='blue']; group: color"><a href="#"></a></li>
        <li uk-filter-control="filter: [data-color='white']; group: color"><a href="#"></a></li>
    </ul>

    <ul>
        <li uk-filter-control="filter: [data-size='small']; group: size"><a href="#"></a></li>
        <li uk-filter-control="filter: [data-size='large']; group: size"><a href="#"></a></li>
    </ul>

    <ul class="js-filter">
        <li data-color="blue" data-size="small"></li>
    </ul>

</div>
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
    • Элемент
  • <div uk-filter="target: .js-filter">
    
        <div class="uk-grid-small uk-grid-divider uk-child-width-auto" uk-grid>
            <div>
                <ul class="uk-subnav uk-subnav-pill" uk-margin>
                    <li class="uk-active" uk-filter-control><a href="#">Dct</a></li>
                </ul>
            </div>
            <div>
                <ul class="uk-subnav uk-subnav-pill" uk-margin>
                    <li uk-filter-control="filter: [data-color='white']; group: data-color"><a href="#">Белый</a></li>
                    <li uk-filter-control="filter: [data-color='blue']; group: data-color"><a href="#">Синий</a></li>
                    <li uk-filter-control="filter: [data-color='black']; group: data-color"><a href="#">Черный</a></li>
                </ul>
            </div>
            <div>
                <ul class="uk-subnav uk-subnav-pill" uk-margin>
                    <li uk-filter-control="filter: [data-size='small']; group: size"><a href="#">Маленький</a></li>
                    <li uk-filter-control="filter: [data-size='medium']; group: size"><a href="#">Средний</a></li>
                    <li uk-filter-control="filter: [data-size='large']; group: size"><a href="#">Большой</a></li>
                </ul>
            </div>
        </div>
    
        <ul class="js-filter uk-child-width-1-2 uk-child-width-1-3@m uk-text-center" uk-grid="masonry: true">
            <li data-color="white" data-size="large">
                <div class="uk-card uk-card-default uk-card-body">
                    <canvas width="600" height="800"></canvas>
                    <div class="uk-position-center">Элемент</div>
                </div>
            </li>
            <li data-color="blue" data-size="small">
                <div class="uk-card uk-card-primary uk-card-body">
                    <canvas width="600" height="400"></canvas>
                    <div class="uk-position-center">Элемент</div>
                </div>
            </li>
            <li data-color="white" data-size="medium">
                <div class="uk-card uk-card-default uk-card-body">
                    <canvas width="600" height="600"></canvas>
                    <div class="uk-position-center">Элемент</div>
                </div>
            </li>
            <li data-color="white" data-size="small">
                <div class="uk-card uk-card-default uk-card-body">
                    <canvas width="600" height="400"></canvas>
                    <div class="uk-position-center">Элемент</div>
                </div>
            </li>
            <li data-color="black" data-size="medium">
                <div class="uk-card uk-card-secondary uk-card-body">
                    <canvas width="600" height="600"></canvas>
                    <div class="uk-position-center">Элемент</div>
                </div>
            </li>
            <li data-color="black" data-size="small">
                <div class="uk-card uk-card-secondary uk-card-body">
                    <canvas width="600" height="400"></canvas>
                    <div class="uk-position-center">Элемент</div>
                </div>
            </li>
            <li data-color="blue" data-size="medium">
                <div class="uk-card uk-card-primary uk-card-body">
                    <canvas width="600" height="600"></canvas>
                    <div class="uk-position-center">Элемент</div>
                </div>
            </li>
            <li data-color="black" data-size="large">
                <div class="uk-card uk-card-secondary uk-card-body">
                    <canvas width="600" height="800"></canvas>
                    <div class="uk-position-center">Элемент</div>
                </div>
            </li>
            <li data-color="blue" data-size="large">
                <div class="uk-card uk-card-primary uk-card-body">
                    <canvas width="600" height="800"></canvas>
                    <div class="uk-position-center">Элемент</div>
                </div>
            </li>
            <li data-color="white" data-size="large">
                <div class="uk-card uk-card-default uk-card-body">
                    <canvas width="600" height="800"></canvas>
                    <div class="uk-position-center">Элемент</div>
                </div>
            </li>
            <li data-color="blue" data-size="medium">
                <div class="uk-card uk-card-primary uk-card-body">
                    <canvas width="600" height="600"></canvas>
                    <div class="uk-position-center">Элемент</div>
                </div>
            </li>
            <li data-color="black" data-size="small">
                <div class="uk-card uk-card-secondary uk-card-body">
                    <canvas width="600" height="400"></canvas>
                    <div class="uk-position-center">Элемент</div>
                </div>
            </li>
        </ul>
    
    </div>

Сортировка

Для алфавитно-цифровой сортировки добавьте опцию sort: ATTRIBUTE к атрибуту uk-filter-control и определите атрибут метаданных, по которому элементы должны быть отсортированы. По умолчанию элементы сортируются в порядке возрастания. Добавьте order: desc сортировки элементов в порядке убывания.

<div uk-filter="target: .js-filter">

    <ul>
        <li uk-filter-control="sort: data-color"><a href="#"></a></li>
        <li uk-filter-control="sort: data-color; order: desc"><a href="#"></a></li>
    </ul>

    <ul class="js-filter">
        <li data-color="blue"></li>
    </ul>

</div>
    • 2016-06-01
    • 2016-12-13
    • 2017-05-20
    • 2017-09-17
    • 2017-11-03
    • 2017-12-25
    • 2018-01-30
    • 2018-02-01
    • 2018-03-11
    • 2018-06-13
    • 2018-10-27
    • 2018-12-02
  • <div uk-filter="target: .js-filter">
    
        <ul class="uk-subnav uk-subnav-pill">
            <li class="uk-active" uk-filter-control="sort: data-date"><a href="#">По возрастанию</a></li>
            <li uk-filter-control="sort: data-date; order: desc"><a href="#">По убыванию</a></li>
        </ul>
    
        <ul class="js-filter uk-child-width-1-2 uk-child-width-1-3@m uk-text-center" uk-grid>
            <li data-date="2016-06-01">
                <div class="uk-card uk-card-default uk-card-body">2016-06-01</div>
            </li>
            <li data-date="2016-12-13">
                <div class="uk-card uk-card-primary uk-card-body">2016-12-13</div>
            </li>
            <li data-date="2017-05-20">
                <div class="uk-card uk-card-default uk-card-body">2017-05-20</div>
            </li>
            <li data-date="2017-09-17">
                <div class="uk-card uk-card-default uk-card-body">2017-09-17</div>
            </li>
            <li data-date="2017-11-03">
                <div class="uk-card uk-card-secondary uk-card-body">2017-11-03</div>
            </li>
            <li data-date="2017-12-25">
                <div class="uk-card uk-card-secondary uk-card-body">2017-12-25</div>
            </li>
            <li data-date="2018-01-30">
                <div class="uk-card uk-card-primary uk-card-body">2018-01-30</div>
            </li>
            <li data-date="2018-02-01">
                <div class="uk-card uk-card-secondary uk-card-body">2018-02-01</div>
            </li>
            <li data-date="2018-03-11">
                <div class="uk-card uk-card-primary uk-card-body">2018-03-11</div>
            </li>
            <li data-date="2018-06-13">
                <div class="uk-card uk-card-default uk-card-body">2018-06-13</div>
            </li>
            <li data-date="2018-10-27">
                <div class="uk-card uk-card-primary uk-card-body">2018-10-27</div>
            </li>
            <li data-date="2018-12-02">
                <div class="uk-card uk-card-secondary uk-card-body">2018-12-02</div>
            </li>
        </ul>
    
    </div>

Фильтр + Masonry

Фильтр часто используется вместе с компонентом Masonry. Переход фильтра отлично работает с любым макетом, независимо от того, как расположены элементы. Еще вы можете добавить эффект Parallax для этой сетки.

Вот полный пример такой сетки:

  • <div uk-filter="target: .js-filter">
    
        <div class="uk-grid-small uk-flex-middle" uk-grid>
            <div class="uk-width-expand">
    
                <div class="uk-grid-small uk-grid-divider uk-child-width-auto" uk-grid>
                    <div>
                        <ul class="uk-subnav uk-subnav-pill" uk-margin>
                            <li class="uk-active" uk-filter-control><a href="#">All</a></li>
                        </ul>
                    </div>
                    <div>
                        <ul class="uk-subnav uk-subnav-pill" uk-margin>
                            <li uk-filter-control="[data-color='white']"><a href="#">Белый</a></li>
                            <li uk-filter-control="[data-color='blue']"><a href="#">Синий</a></li>
                            <li uk-filter-control="[data-color='black']"><a href="#">Черный</a></li>
                        </ul>
                    </div>
                    <div>
                        <ul class="uk-subnav uk-subnav-pill" uk-margin>
                            <li uk-filter-control="[data-size='small']"><a href="#">Маленький</a></li>
                            <li uk-filter-control="[data-size='medium']"><a href="#">Средний</a></li>
                            <li uk-filter-control="[data-size='large']"><a href="#">Большой</a></li>
                        </ul>
                    </div>
                </div>
    
            </div>
            <div class="uk-width-auto uk-text-nowrap">
    
    
                <span class="uk-active" uk-filter-control="sort: data-name"><a class="uk-icon-link" href="#" uk-icon="icon: arrow-down"></a></span>
                <span uk-filter-control="sort: data-name; order: desc"><a class="uk-icon-link" href="#" uk-icon="icon: arrow-up"></a></span>
    
            </div>
        </div>
    
        <ul class="js-filter uk-child-width-1-2 uk-child-width-1-3@m uk-text-center" uk-grid="masonry: true">
            <li data-color="white" data-size="large" data-name="A">
                <div class="uk-card uk-card-default uk-card-body">
                    <canvas width="600" height="800"></canvas>
                    <div class="uk-position-center">A</div>
                </div>
            </li>
            <li data-color="blue" data-size="small" data-name="B">
                <div class="uk-card uk-card-primary uk-card-body">
                    <canvas width="600" height="400"></canvas>
                    <div class="uk-position-center">B</div>
                </div>
            </li>
            <li data-color="white" data-size="medium" data-name="C">
                <div class="uk-card uk-card-default uk-card-body">
                    <canvas width="600" height="600"></canvas>
                    <div class="uk-position-center">C</div>
                </div>
            </li>
            <li data-color="white" data-size="small" data-name="D">
                <div class="uk-card uk-card-default uk-card-body">
                    <canvas width="600" height="400"></canvas>
                    <div class="uk-position-center">D</div>
                </div>
            </li>
            <li data-color="black" data-size="medium" data-name="E">
                <div class="uk-card uk-card-secondary uk-card-body">
                    <canvas width="600" height="600"></canvas>
                    <div class="uk-position-center">E</div>
                </div>
            </li>
            <li data-color="black" data-size="small" data-name="F">
                <div class="uk-card uk-card-secondary uk-card-body">
                    <canvas width="600" height="400"></canvas>
                    <div class="uk-position-center">F</div>
                </div>
            </li>
            <li data-color="blue" data-size="medium" data-name="G">
                <div class="uk-card uk-card-primary uk-card-body">
                    <canvas width="600" height="600"></canvas>
                    <div class="uk-position-center">G</div>
                </div>
            </li>
            <li data-color="black" data-size="large" data-name="H">
                <div class="uk-card uk-card-secondary uk-card-body">
                    <canvas width="600" height="800"></canvas>
                    <div class="uk-position-center">H</div>
                </div>
            </li>
            <li data-color="blue" data-size="large" data-name="I">
                <div class="uk-card uk-card-primary uk-card-body">
                    <canvas width="600" height="800"></canvas>
                    <div class="uk-position-center">I</div>
                </div>
            </li>
            <li data-color="white" data-size="large" data-name="J">
                <div class="uk-card uk-card-default uk-card-body">
                    <canvas width="600" height="800"></canvas>
                    <div class="uk-position-center">J</div>
                </div>
            </li>
            <li data-color="blue" data-size="medium" data-name="K">
                <div class="uk-card uk-card-primary uk-card-body">
                    <canvas width="600" height="600"></canvas>
                    <div class="uk-position-center">K</div>
                </div>
            </li>
            <li data-color="black" data-size="small" data-name="L">
                <div class="uk-card uk-card-secondary uk-card-body">
                    <canvas width="600" height="400"></canvas>
                    <div class="uk-position-center">L</div>
                </div>
            </li>
        </ul>
    
    </div>

Опции компонента

Любой из этих параметров может быть применен к атрибуту компонента. Разделяйте несколько вариантов точкой с запятой. Подробнее о параметрах

Опция Значение По умолчанию Описание
target String '' Целевой список ul, к которому применяется фильтр.
selActive String, Boolean false Селектор для изначально активных элементов управления фильтра.

target является параметром Primary, и его ключ может быть опущен, если это единственный параметр в значении атрибута.


JavaScript

Подробнее о компонентах JavaScript.

Инициализация

UIkit.filter(element, options);

События

Следующие события будут инициированы для компонента:

Имя Описание
beforeFilter Срабатывает до применения фильтра.
afterFilter Срабатывает после применения фильтра.