HTML原生的Popover API彈出視窗(燈箱)
其實 HTML 已經有內建 Popover API 了,在某些簡單的場合下,你可以考慮直接用 HTML 和 CSS 就能寫出燈箱(彈出視窗)效果。
![]() |
| 本圖片由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 時,這個點擊事件會「穿透」到底層元素,導致下方的按鈕或其他元素也意外被觸發。


留言
張貼留言