跳到主要內容
+

Popover

Popover 可用於在另一個內容之上顯示某些內容。

使用 Popover 元件時需要知道的事項

  • 此元件建構於 Modal 元件之上。
  • Popper 元件不同,捲動和點擊外部區域會被阻止。
按下 Enter 鍵開始編輯

錨點遊樂場

使用單選按鈕調整 anchorOrigintransformOrigin 位置。您也可以將 anchorReference 設定為 anchorPositionanchorEl。當設定為 anchorPosition 時,元件將參考 anchorPosition 屬性(而非 anchorEl),您可以調整此屬性來設定 popover 的位置。

錨點參考
 
錨點原點.垂直
轉換原點.垂直
錨點原點.水平
轉換原點.水平
<Popover 
  anchorOrigin={{
    vertical: 'top',
    horizontal: 'left',
  }}
  transformOrigin={{
    vertical: 'top',
    horizontal: 'left',
  }}
>
  The content of the Popover.
</Popover>

滑鼠懸停互動

此示範展示如何使用 Popover 元件搭配 mouseentermouseleave 事件來實現 popover 行為。

滑鼠懸停顯示 Popover。

虛擬元素

anchorEl 屬性的值可以是虛擬 DOM 元素的參考。您需要提供具有以下介面的物件

interface PopoverVirtualElement {
  nodeType: 1;
  getBoundingClientRect: () => DOMRect;
}

反白文字的一部分以查看 popover

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam ipsum purus, bibendum sit amet vulputate eget, porta semper ligula. Donec bibendum vulputate erat, ac fringilla mi finibus nec. Donec ac dolor sed dolor porttitor blandit vel vel purus. Fusce vel malesuada ligula. Nam quis vehicula ante, eu finibus est. Proin ullamcorper fermentum orci, quis finibus massa. Nunc lobortis, massa ut rutrum ultrices, metus metus finibus ex, sit amet facilisis neque enim sed neque. Quisque accumsan metus vel maximus consequat. Suspendisse lacinia tellus a libero volutpat maximus.

有關虛擬元素屬性的更多資訊,請參閱以下資源

補充專案

對於更進階的使用情境,您或許可以利用

material-ui-popup-state

stars npm downloads

material-ui-popup-state 套件在大多數情況下會為您處理 popover 狀態。

API

請參閱以下文件,以取得此處提及之元件所有可用屬性和類別的完整參考。