Skip to content
API 风格:

Закрепление ​

Закрепление контента вверху или внизу при прокрутке. Использует IntersectionObserver для отслеживания выхода placeholder за границы (без троттлинга прокрутки; при отсутствии IO автоматически откатывается к прослушиванию scroll).

Базовое использование ​

Закрепление вверху
Закреплённая панель

offset-bottom закрепляет элемент внизу (приоритет выше, чем у offset-top); target задаёт контейнер прокрутки для отслеживания (по умолчанию viewport).

Закрепление внизу
Закреплённая панель (offset-bottom)
vue
<script setup lang="ts">
</script>

<template>
  <!-- Закрепление внизу -->
  <LhAffix :offset-bottom="8">
    <div class="demo-affix-bar">Закреплённая панель</div>
  </LhAffix>
</template>
vue
<script>
export default {}
</script>

<template>
  <!-- Закрепление внизу -->
  <LhAffix :offset-bottom="8">
    <div class="demo-affix-bar">Закреплённая панель</div>
  </LhAffix>
</template>
vue
<script setup lang="ts">
</script>

<template>
  <!-- Закрепление вверху -->
  <LhAffix :offset-top="8">
    <div class="demo-affix-bar">Закреплённая панель</div>
  </LhAffix>
</template>
vue
<script>
export default {}
</script>

<template>
  <!-- Закрепление вверху -->
  <LhAffix :offset-top="8">
    <div class="demo-affix-bar">Закреплённая панель</div>
  </LhAffix>
</template>

API ​

LhAffix Props ​

СвойствоОписаниеТипПо умолчанию
offsetTopНа сколько пикселей от верха viewport срабатывает закрепление вверхуnumber0
offsetBottomНа сколько пикселей от низа viewport срабатывает закрепление внизу (приоритет выше, чем у offsetTop)number0
targetКонтейнер прокрутки (селектор или элемент; по умолчанию viewport)string | HTMLElement—
sxСокращённые свойства компоновки sxLhSxProps—

Events ​

СобытиеОписаниеПараметр обратного вызова
changeСрабатывает при переключении закреплённого состояния (закрепление или освобождение)(fixed: boolean)

Доступность ​

  • Без специальной role; закреплённое состояние не влияет на порядок фокуса в потоке документа
  • При закреплении высота сохраняется за счёт элемента-placeholder, чтобы избежать скачков макета

Типы ​

TypeScript-типы, экспортируемые этим компонентом (извлечены автоматически из packages/components/affix/src/types.ts и исходников @lh-ui/share/core/*; раскройте нужный пункт, чтобы увидеть полное определение; описания свойств — в таблице Props выше):

LhAffixProps
ts
export interface LhAffixProps {
  /** На сколько пикселей от верха viewport срабатывает закрепление вверху */
  offsetTop?: number
  /** На сколько пикселей от низа viewport срабатывает закрепление внизу (приоритет выше, чем у offsetTop) */
  offsetBottom?: number
  /** Контейнер прокрутки (селектор или элемент; по умолчанию viewport) */
  target?: string | HTMLElement
  /** Сокращённые свойства компоновки sx */
  sx?: LhSxProps
}

Красота традиций — основа кода