КРЕАТИВНЫЕ САЙТЫ И ПРИЛОЖЕНИЯ,
КАЧЕСТВЕННЫЕ WEB-УСЛУГИ
phone

SwDropdown

Компонент SwDropdown это всплывающее меню
с возможностью настройки места
относительного всплытия и типа Триггера.

SwDropdown

Компонент SwDropdown — всплывающее меню с настройкой места открытия и типа триггера. У попапа есть уголок, который указывает на триггер; сторона и смещение считаются по фактической позиции (с учётом flip у края экрана). z-index попапа динамический = z-index ближайшего предка + 3. Клавиатура: Escape закрывает, ↑/↓ по пунктам, Enter / Space выбирает. Компонент с trigger="hover" и текстом/разметкой в #dropdown работает как подсказка Tooltip (без SwDropdownItem, если это не меню).

Свойства / Properties

ИмяТипПо умолчаниюЗначения/Описание
classString``CSS-класс попапа (например guide для онбординга).
sizeString``Размер: 'large', 'small'.
typeString``'primary', 'success', 'info', 'warning', 'danger'.
triggerStringclickСпособ открытия: 'click', 'hover' (в т.ч. как tooltip), 'context', 'none' — только через model.
placementStringbottom-left'bottom-left', 'bottom', 'bottom-right', 'top-left', 'top', 'top-right', 'left', 'right'.
maxWidthNumber0Максимальная ширина меню в px. 0 — без ограничений.

Слоты / Slots

Default - текст описания или модуль / модули #dropdown - контент всплывающего окна (пункты меню или произвольный текст для tooltip)

Модель / Model

model - состояние меню, булевое значение открыто - true

Пример использования / Example Usage

Меню:

<script setup>
import { ref } from 'vue'
const open = ref(false)
const TABLER = 'https://cdn.jsdelivr.net/npm/@tabler/icons@3.19.0/icons/outline'
const star = `${TABLER}/star.svg`
const chevron = `${TABLER}/chevron-down.svg`
</script>

<sw-dropdown v-model="open" trigger="click" placement="bottom-left">
  <sw-button size="small">
    Меню <sw-icon :icon-class="chevron" />
  </sw-button>
  <template #dropdown>
    <sw-dropdown-item :before="star">Пункт со звездой</sw-dropdown-item>
    <sw-dropdown-item>Обычный пункт</sw-dropdown-item>
    <sw-dropdown-item type="danger">Опасный</sw-dropdown-item>
  </template>
</sw-dropdown>

Подсказка (tooltip):

<sw-dropdown trigger="hover" placement="top" :max-width="220">
  <sw-button label="?" type="info" />
  <template #dropdown>
    Краткая подсказка к элементу
  </template>
</sw-dropdown>