Popover 組件用於管理在彈出視窗中內容的呈現。您可以使用彈出視窗來暫時呈現資訊。彈出視窗會保持可見,直到使用者點擊彈出視窗外或您明確關閉它。
包含以下元件
Popover
名稱 | 類型 | 預設值 | 說明 |
---|---|---|---|
angle | 布林值 | true | 渲染彈出視窗的「角度」/「角落」 |
angleClass | 字串 | undefined | 要添加到「角度」/「角落」元素上的額外 CSS 類別 |
backdrop | 布林值 | true | 啟用 Popover 背景(後方深色半透明圖層) |
colors | 物件 | 包含 Tailwind CSS 顏色類別的物件 | |
colors.bgIos | 字串 | 'bg-ios-light-surface-3 dark:bg-ios-dark-surface-3' | |
colors.bgMaterial | 字串 | 'bg-md-light-surface-3 dark:bg-md-dark-surface-3' | |
opened | 布林值 | 布林值 | 允許開啟/關閉 Popover 並設定其初始狀態 |
size | 字串 | 字串 | Tailwind CSS 大小類別 |
target | 字串 | HTMLElement | 參考 | Popover 目標元素。Popover 將定位在這個元素周圍 | |
targetHeight | 數字 | 虛擬目標元素高度(像素)。在不使用真實目標元素 ( | |
targetWidth | 數字 | 數字 | |
虛擬目標元素寬度(像素)。在不使用真實目標元素 (target 屬性) 時需要 | 數字 | targetX | |
數字 | 數字 | 虛擬目標元素從螢幕左側的水平偏移量。在不使用真實目標元素 ( | |
targetY | 布林值 | true | 數字 |
虛擬目標元素從螢幕頂部的垂直偏移量。在不使用真實目標元素 (target 屬性) 時需要 | translucent | 布林值 |
backdrop-filter: blur
)<script>import {Page,Navbar,NavbarBackLink,Popover,Block,Link,Button,List,ListItem,} from 'konsta/svelte';let popoverOpened = false;let popoverTargetEl = null;const openPopover = (targetEl) => {popoverTargetEl = targetEl;popoverOpened = true;};</script><Page><Navbar title="Popover"><Linkslot="right"class="popover-navbar-link"navbaronClick={() => openPopover('.popover-navbar-link')}>Popover</Link></Navbar><Block class="space-y-4"><p><Buttonclass="popover-button"onClick={() => openPopover('.popover-button')}>Open popover on me</Button></p><p>Mauris fermentum neque et luctus venenatis. Vivamus a sem rhoncus, ornaretellus eu, euismod mauris. In porta turpis at semper convallis. Duisadipiscing leo eu nulla lacinia, quis rhoncus metus condimentum. Etiam necmalesuada nibh. Maecenas quis lacinia nisl, vel posuere dolor. Vestibulumcondimentum, nisl ac vulputate egestas, neque enim dignissim elit, rhoncusvolutpat magna enim a est. Aenean sit amet ligula neque. Cras suscipitrutrum enim. Nam a odio facilisis, elementum tellus non,{' '}<Linkclass="popover-link-1"onClick={() => openPopover('.popover-link-1')}>popover</Link>{' '}tortor. Pellentesque felis eros, dictum vitae lacinia quis, lobortis vitaeipsum. 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{' '}<Linkclass="popover-link-2"onClick={() => openPopover('.popover-link-2')}>popover!</Link>{' '}cursus laoreet. Aenean vel tempus augue. Pellentesque in imperdiet nibh. Maurisrhoncus nulla id sem suscipit volutpat. Pellentesque ac arcu in nisi viverrapulvinar. Nullam nulla orci, bibendum sed ligula non, ullamcorper iaculis mi.In hac habitasse platea dictumst. Praesent varius at nisl eu luctus. Cras aliquetporta est. Quisque elementum quis dui et consectetur. Cum sociis natoque penatibuset 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 eratvenenatis eu. Proin sit amet faucibus tortor, et varius sem. Etiam vitaelacinia neque. Aliquam nisi purus, interdum in arcu sed, ultrices rutrumarcu. Nulla mi turpis, consectetur vel enim quis, facilisis viverra dui.Aliquam quis convallis tortor, quis semper ligula. Morbi ullamcorper{' '}<Linkclass="popover-link-3"onClick={() => openPopover('.popover-link-3')}>one more popover</Link>{' '}massa at accumsan. Etiam purus odio, posuere in ligula vitae, viverra ultriciesjusto. Vestibulum nec interdum nisi. Aenean ac consectetur velit, non malesuadamagna. Sed pharetra vehicula augue, vel venenatis lectus gravida eget. Curabiturlacus tellus, venenatis eu arcu in, interdum auctor nunc. Nunc non metus neque.Suspendisse viverra lectus sed risus aliquet, vel accumsan dolor feugiat.</p></Block><Popoveropened={popoverOpened}target={popoverTargetEl}onBackdropClick={() => (popoverOpened = false)}><List nested><ListItem title="Item 1" link onClick={() => (popoverOpened = false)} /><ListItemtitle="List Item 2"linkonClick={() => (popoverOpened = false)}/><ListItem title="Item 3" link onClick={() => (popoverOpened = false)} /><ListItemtitle="List Item 4"linkonClick={() => (popoverOpened = false)}/><ListItem title="Item 5" link onClick={() => (popoverOpened = false)} /></List></Popover></Page>