Popover API
Popover API 提供了标准化的显示弹出窗口的形式
Popover API 可以通过 HTML 控制或通过 JavaScript 控制
设置弹出元素
向 HTML 元素指定 popover
属性,以将元素指定为可弹出的,值需要为 auto
或 manual
或空字符串之一
值 auto
代表仅允许显示单个弹出窗口,允许自动关闭弹出窗口
值 manual
代表允许显示多个弹出窗口,允许手动关闭弹出窗口
1 | <div id="popover" popover="auto"></div> |
同样可以通过 HTMLElement
接口的 popover
属性指定
1 | popoverElement.popover = 'auto'; |
设置弹出元素的控制元素
控制元素必须为 <button>
元素或 <input type="button" />
元素
向 HTML 元素指定 popovertarget
属性以设置控制元素控制的弹出元素,值是弹出元素的 id
向 HTML 元素指定 popovertargetaction
属性以设置控制元素的控制行为,值为 hide
show
toggle
之一
1 | <button popovertarget="popover" popovertargetaction="toggle">popover</button> |
同样可以通过 HTMLElement
接口的 popoverTargetElement
属性指定控制元素控制的弹出元素,值需要接受一个 HTMLElement
同样可以通过 HTMLElement
接口的 popoverTargetAction
属性指定控制元素的控制行为
1 | targetElement.popoverTargetElement = popoverElement; |
控制弹出元素
调用 HTMLElement
接口的 showPopover()
方法显示弹出窗口
调用 HTMLElement
接口的 hidePopover()
方法隐藏弹出窗口
showPopover()
方法与 hidePopover()
方法在已处于相应状态时会抛出 InvalidStateError
异常
调用 HTMLElement
接口的 togglePopover()
方法切换弹出窗口
togglePopover()
方法允许接受一个 force
参数,以指定期望的行为,但不会抛出异常;并且会返回执行的结果
1 | popoverElement.showPopover(); |
弹出元素事件
beforetoggle
事件在元素的弹出状态改变前触发
toggle
事件在元素的弹出状态改变后触发
两事件均返回一个 ToggleEvent
事件,事件的 newState
属性和 oldState
属性返回 closed
或 open
之一
弹出元素 CSS 相关
可以利用 :popover-open
伪类选择器选中处于 popover 显示状态的元素
可以利用 ::backdrop
伪元素选择器选中 top-layer 背后的内容并进行特殊的定制