HTML原生的Popover API彈出視窗(燈箱)

其實 HTML 已經有內建 Popover API 了,在某些簡單的場合下,你可以考慮直接用 HTML 和 CSS 就能寫出燈箱(彈出視窗)效果。

Popover API
本圖片由AI生成

popovertarget

  • 在 button 加上 popovertarget 對應燈箱的 id。
  • 建立一個有 id 的元素,作為燈箱使用。

大功告成!

疑?就這樣?

對,就是這麼簡單。再來只要用 CSS 美化就好了。

See the Pen pure HTML popup by cj (@cjzopen) on CodePen.

::backdrop

這個 CSS 語法可以設計開啟燈箱的時候,燈箱以外的區域,例如背景顏色。

:popover-open

當你有多個 HTML 原生燈箱元素時,可以用這個語法先設計出 default 燈箱。

@starting-style

你可以用這個語法搭配 transition 做出開啟彈出視窗時的過場動畫。

要注意的缺點

不過,原生 Popover API 有個明顯的缺點:當你點擊 ::backdrop 關閉 popover 時,這個點擊事件會「穿透」到底層元素,導致下方的按鈕或其他元素也意外被觸發。

留言

這個網誌中的熱門文章

如何產生醒目顯示文字的連結?讓使用者一目瞭然的功能(Scroll to Text Fragment)

用CSS的 min max與vw cqw,設計有極限值的RWD響應式文字

Google Search Console 網頁發現方式多了「參照網頁」