メインコンテンツへスキップ

Loading ローディングオーバーレイ

全画面または局所的なローディングオーバーレイ:送信中やリストの読み込みなどの場面でユーザーの操作を凍結し、待機の通知を出します。

基本的な使い方​

基本的な使い方

作品リストエリア(ローカルオーバーレイのマウント先)

lock=true のとき、このエリアはスクロールがロックされ、inert でインタラクションが凍結されます。

import { loading } from '@lh-ui/react'
import '@lh-ui/react/style/loading'

const handle = loading.show({ text: '送信中…' })
setTimeout(() => handle.close(), 1500)

// 全画面ではなく指定した領域にマウント
loading.show({ target: cardRef.current })

loading メソッド​

メソッド説明戻り値
showオーバーレイを表示{ close }
closeAllすべてのアクティブなインスタンスを閉じる(退場アニメーションをスキップ)void
const handle = loading.show({ target: '#card', lock: true })
handle.close()

LhLoadingOptions​

プロパティ説明型デフォルト値
targetマウント対象:セレクター文字列 / 要素。未指定時は全画面string | HTMLElement全画面(body)
text通知テキストstring言語パック(zh-CN:加载中…)
backgroundオーバーレイの背景色(CSS background 値)stringrgba(255,255,255,72%)
lockスクロールをロックするかどうか(全画面は body をロック、指定対象の場合は対象自身をロック)booleantrue
message / notification との違い

loading は任意の対象要素(全画面または局所)にマウントされ、単例コンテナを共有できないため、per-instance createRoot を使います:各インスタンスが自身の root と復元用ハンドルを保持します。同一対象に繰り返し show すると、まず古いインスタンスをアンマウントします。

局所オーバーレイの操作凍結

全画面でないオーバーレイは対象のスクロールをロックするだけでなく、対象に inert を設定して内容の操作を凍結します。閉じた後は overflow / inert / position を自動的に復元します(static 配置の対象には一時的に relative が補われます)。

アクセシビリティ

オーバーレイは role="status" + aria-busy="true" で、テキストが aria-label として読み上げられます。 回転アイコンは装飾図形(aria-hidden)です。

オンデマンドのスタイル導入

オーバーレイは button の spinner の描画(.lh-button__spinner)を再利用するため、ページで @lh-ui/react/style/button も同時に導入しないと回転アニメーションがありません。

スタイル​

import '@lh-ui/react/style/loading'