Skip to content
API 风格:

Affix 固定 ​

スクロールに追従して上部・下部に固定します。IntersectionObserver でプレースホルダーの境界を検出します(スクロールのスロットリングコストなし。IO が使えない環境では自動的に scroll 監視にフォールバックします)。

基本的な使い方 ​

上部に固定
固定ツールバー

offset-bottom で下部固定をトリガーします(offset-top より優先)。target でスクロール監視コンテナを指定します(デフォルトはビューポート)。

下部に固定
固定ツールバー(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ビューポートの上端から何ピクセルで上部固定をトリガーするかnumber0
offsetBottomビューポートの下端から何ピクセルで下部固定をトリガーするか(offsetTop より優先)number0
targetスクロール監視コンテナ(セレクターまたは要素、デフォルトはビューポート)string | HTMLElement—
sxsx クイックレイアウトプロパティLhSxProps—

Events ​

イベント名説明コールバック
change固定状態が切り替わったときに発火します(上部・下部固定に入る・外れるとき)(fixed: boolean)

アクセシビリティ ​

  • 特別な role はありません。固定状態はドキュメントのフォーカス順序に影響しません
  • 固定時はプレースホルダーが高さを確保し、レイアウトの跳ね返りを防ぎます

型定義 ​

このコンポーネントが外部にエクスポートする TypeScript の型構造を以下に示します(packages/components/affix/src/types.ts および @lh-ui/share/core/* のソースから自動抽出。各エントリーをクリックすると完全な定義が表示されます。プロパティの説明は上の Props 表を参照してください):

LhAffixProps
ts
export interface LhAffixProps {
  offsetTop?: number
  offsetBottom?: number
  target?: string | HTMLElement
  sx?: LhSxProps
}

国風の美で、コードの基を築く