🔥 新しいプロジェクトのご紹介 t0ggles -究極のプロジェクト管理ツール! 🔥

Popover React コンポーネント

Popover コンポーネントは、Popover 内のコンテンツの表示を管理するために使用されます。Popover を使用して、一時的に情報を表示します。Popover は、ユーザーが Popover ウィンドウの外側をタップするか、明示的に閉じられるまで表示されたままになります。

Popover コンポーネント

以下のコンポーネントが含まれています。

  • Popover

Popover プロパティ

名前デフォルト説明
anglebooleantrue

Popover の「角」をレンダリングします。

angleClassNamestringundefined

「角」要素に追加する追加の CSS クラス

backdropbooleantrue

Popover バックドロップ(背後に表示される暗い半透明レイヤー)を有効にします。

colorsobject

Tailwind CSS カラークラスを含むオブジェクト

colors.bgIosstring'bg-ios-light-surface-3 dark:bg-ios-dark-surface-3'
colors.bgMaterialstring'bg-md-light-surface-3 dark:bg-md-dark-surface-3'
componentstring'div'

コンポーネントの HTML 要素

openedbooleanfalse

Popover の開閉と初期状態の設定を許可します。

sizestring'w-64'

Tailwind CSS サイズクラス

targetstring | HTMLElement | Ref

Popover ターゲット要素。Popover はこの要素の周囲に配置されます。

targetHeightnumber

仮想ターゲット要素の高さ(px単位)。実際のターゲット要素(`target` プロパティ)を使用しない場合に必要です。

targetWidthnumber

仮想ターゲット要素の幅(px単位)。実際のターゲット要素(`target` プロパティ)を使用しない場合に必要です。

targetXnumber

画面の左端からの仮想ターゲット要素の水平方向のオフセット。実際のターゲット要素(`target` プロパティ)を使用しない場合に必要です。

targetYnumber

画面の上端からの仮想ターゲット要素の垂直方向のオフセット。実際のターゲット要素(`target` プロパティ)を使用しない場合に必要です。

translucentbooleantrue

iOS テーマで Popover の背景をトランスルーセント(`backdrop-filter: blur` を使用)にします。

onBackdropClickfunction(e)

バックドロップ要素のクリックハンドラー

Popover.jsx
import React, { useRef, useState } from 'react';
import {
Page,
Navbar,
NavbarBackLink,
Popover,
Block,
Link,
Button,
List,
ListItem,
} from 'konsta/react';
export default function PopoverPage() {
const [popoverOpened, setPopoverOpened] = useState(false);
const popoverTargetRef = useRef(null);
const openPopover = (targetRef) => {
popoverTargetRef.current = targetRef;
setPopoverOpened(true);
};
return (
<Page>
<Navbar
title="Popover"
right={
<Link
className="popover-navbar-link"
navbar
onClick={() => openPopover('.popover-navbar-link')}
>
Popover
</Link>
}
/>
<Block className="space-y-4">
<p>
<Button
className="popover-button"
onClick={() => openPopover('.popover-button')}
>
Open popover on me
</Button>
</p>
<p>
Mauris fermentum neque et luctus venenatis. Vivamus a sem rhoncus,
ornare tellus eu, euismod mauris. In porta turpis at semper convallis.
Duis adipiscing leo eu nulla lacinia, quis rhoncus metus condimentum.
Etiam nec malesuada nibh. Maecenas quis lacinia nisl, vel posuere
dolor. Vestibulum condimentum, nisl ac vulputate egestas, neque enim
dignissim elit, rhoncus volutpat magna enim a est. Aenean sit amet
ligula neque. Cras suscipit rutrum enim. Nam a odio facilisis,
elementum tellus non,{' '}
<Link
className="popover-link-1"
onClick={() => openPopover('.popover-link-1')}
>
popover
</Link>{' '}
tortor. Pellentesque felis eros, dictum vitae lacinia quis, lobortis
vitae ipsum. Cras vehicula bibendum lorem quis imperdiet.
</p>
<p>
In hac habitasse platea dictumst. Etiam varius, ante vel ornare
facilisis, velit massa rutrum dolor, ac porta magna magna lacinia
nunc. Curabitur{' '}
<Link
className="popover-link-2"
onClick={() => openPopover('.popover-link-2')}
>
popover!
</Link>{' '}
cursus laoreet. Aenean vel tempus augue. Pellentesque in imperdiet
nibh. Mauris rhoncus nulla id sem suscipit volutpat. Pellentesque ac
arcu in nisi viverra pulvinar. Nullam nulla orci, bibendum sed ligula
non, ullamcorper iaculis mi. In hac habitasse platea dictumst.
Praesent varius at nisl eu luctus. Cras aliquet porta est. Quisque
elementum quis dui et consectetur. Cum sociis natoque penatibus et
magnis dis parturient montes, nascetur ridiculus mus. Sed sed laoreet
purus. Pellentesque eget ante ante.
</p>
<p>
Duis et ultricies nibh. Sed facilisis turpis urna, ac imperdiet erat
venenatis eu. Proin sit amet faucibus tortor, et varius sem. Etiam
vitae lacinia neque. Aliquam nisi purus, interdum in arcu sed,
ultrices rutrum arcu. Nulla mi turpis, consectetur vel enim quis,
facilisis viverra dui. Aliquam quis convallis tortor, quis semper
ligula. Morbi ullamcorper{' '}
<Link
className="popover-link-3"
onClick={() => openPopover('.popover-link-3')}
>
one more popover
</Link>{' '}
massa at accumsan. Etiam purus odio, posuere in ligula vitae, viverra
ultricies justo. Vestibulum nec interdum nisi. Aenean ac consectetur
velit, non malesuada magna. Sed pharetra vehicula augue, vel venenatis
lectus gravida eget. Curabitur lacus tellus, venenatis eu arcu in,
interdum auctor nunc. Nunc non metus neque. Suspendisse viverra lectus
sed risus aliquet, vel accumsan dolor feugiat.
</p>
</Block>
<Popover
opened={popoverOpened}
target={popoverTargetRef.current}
onBackdropClick={() => setPopoverOpened(false)}
>
<List nested>
<ListItem
title="Item 1"
link
onClick={() => setPopoverOpened(false)}
/>
<ListItem
title="List Item 2"
link
onClick={() => setPopoverOpened(false)}
/>
<ListItem
title="Item 3"
link
onClick={() => setPopoverOpened(false)}
/>
<ListItem
title="List Item 4"
link
onClick={() => setPopoverOpened(false)}
/>
<ListItem
title="Item 5"
link
onClick={() => setPopoverOpened(false)}
/>
</List>
</Popover>
</Page>
);
}
ライセンス MIT.
2022 © Konsta UI by nolimits4web.