Перейти к содержимому

Collapse

Плагин Collapse позволяет разворачивать и сворачивать элементы с помощью плавной анимации.

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

Вы можете использовать этот плагин, включив его из тега <script> или установив с помощью менеджера пакетов.

Вы можете подключить CDN-сборку этого плагина с помощью тега <script>, только подключать нужно ДО основного JS-файла Alpine.

<!-- Collapse Plugin -->
<script defer src="https://cdn.jsdelivr.net/npm/@alpinejs/collapse@3/dist/cdn.min.js"></script>
<!-- Alpine Core -->
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3/dist/cdn.min.js"></script>

Вы можете установить Collapse для использования внутри вашей сборки следующим образом:

Окно терминала
npm i @alpinejs/collapse

Затем инициализируйте его в своей сборке:

import Alpine from 'alpinejs';
import collapse from '@alpinejs/collapse';
Alpine.plugin(collapse);
Alpine.start();

Основным API для использования этого плагина является директива x-collapse.

x-collapse может существовать только в элементе, у которого уже есть директива x-show. При добавлении к элементу x-show, x-collapse будет плавно «сворачивать» и «расширять» элемент, когда его видимость переключается путём анимации его свойства высоты.

Например:

<div x-data="{ expanded: false }">
<button x-on:click="expanded = !expanded">Переключить содержимое</button>
<div x-show="expanded" x-collapse>
<div class="pt-4">
Reprehenderit eu excepteur ullamco esse cillum reprehenderit exercitation labore non. Dolore dolore ea dolore veniam sint in sint ex Lorem ipsum. Sint laborum deserunt deserunt amet voluptate cillum deserunt. Amet nisi pariatur sit ut id. Ipsum est minim est commodo id dolor sint id quis sint Lorem.
</div>
</div>
</div>
Reprehenderit eu excepteur ullamco esse cillum reprehenderit exercitation labore non. Dolore dolore ea dolore veniam sint in sint ex Lorem ipsum. Sint laborum deserunt deserunt amet voluptate cillum deserunt. Amet nisi pariatur sit ut id. Ipsum est minim est commodo id dolor sint id quis sint Lorem.

Вы можете настроить продолжительность перехода свёртывания/развёртывания, добавив модификатор .duration:

<div x-data="{ expanded: false }">
<button x-on:click="expanded = !expanded">Переключить содержимое</button>
<div x-show="expanded" x-collapse.duration.3000ms>
<div class="pt-4">
Reprehenderit eu excepteur ullamco esse cillum reprehenderit exercitation labore non. Dolore dolore ea dolore veniam sint in sint ex Lorem ipsum. Sint laborum deserunt deserunt amet voluptate cillum deserunt. Amet nisi pariatur sit ut id. Ipsum est minim est commodo id dolor sint id quis sint Lorem.
</div>
</div>
</div>
Reprehenderit eu excepteur ullamco esse cillum reprehenderit exercitation labore non. Dolore dolore ea dolore veniam sint in sint ex Lorem ipsum. Sint laborum deserunt deserunt amet voluptate cillum deserunt. Amet nisi pariatur sit ut id. Ipsum est minim est commodo id dolor sint id quis sint Lorem.

По умолчанию «свёрнутое» состояние x-collapse устанавливает высоту элемента в 0px, а также устанавливает display: none;.

Иногда полезно «отрезать» элемент, а не полностью его скрывать. Используя модификатор .min, вы можете установить минимальную высоту для «свёрнутого» состояния x-collapse Например:

<div x-data="{ expanded: true }">
<button x-on:click="expanded = !expanded">Переключить содержимое</button>
<div x-show="expanded" x-collapse.min.50px>
<div class="pt-4">
Reprehenderit eu excepteur ullamco esse cillum reprehenderit exercitation labore non. Dolore dolore ea dolore veniam sint in sint ex Lorem ipsum. Sint laborum deserunt deserunt amet voluptate cillum deserunt. Amet nisi pariatur sit ut id. Ipsum est minim est commodo id dolor sint id quis sint Lorem.
</div>
</div>
</div>
Reprehenderit eu excepteur ullamco esse cillum reprehenderit exercitation labore non. Dolore dolore ea dolore veniam sint in sint ex Lorem ipsum. Sint laborum deserunt deserunt amet voluptate cillum deserunt. Amet nisi pariatur sit ut id. Ipsum est minim est commodo id dolor sint id quis sint Lorem.

Вопрос 1

С помощью какой директивы задействуется этот плагин?

  • x-colapse

    Здесь опечатка: в названии директивы две буквы lx-collapse.

  • x-spoiler

    Такой директивы в Alpine нет.

  • Правильных ответов нет

    Плагин работает через x-collapse, а такого варианта среди ответов нет.

Вопрос 2

Как указать продолжительность перехода свёртывания/развёртывания в 10 секунд?

  • Добавить модификатор .duration.10s

    Значение с суффиксом s задаёт длительность в секундах.

  • Добавить модификатор .duration.10ms

    Такая запись даст 10 миллисекунд — в тысячу раз меньше нужного.

  • Добавить модификатор .duration.10sec

    Единицы sec не существует — допустимы только s и ms.

Прогресс викторины

0 / 0 вопросов отвечено (0%)

0 верно