弹出框(Popover)
当您希望用户点击/轻击DOM元素/组件时,菜单(或任何内容)显示在弹出窗口上,应使用QPopover。
安装
编辑 /quasar.conf.js
:framework: {
components: ['QPopover'],
// optional if you want to use
// directive `v-close-overlay`
directives: ['CloseOverlay']
}
基本用法
在下面的例子中,我们使用按钮(作为目标),当点击/轻击它时,Quasar将显示一个列表。
您可以用您喜欢的任何DOM元素或组件替换QBtn和列表。
<!-- |
这个想法是将QPopover放置在作为触发器的DOM元素/组件中,就像直接子元素一样。 不用担心QPopover内容会从容器继承CSS,因为QPopover将作为<body>
的直接子节点注入。
重要
在浏览器中,点击<ESCAPE>键也会关闭了QPopover。
通过v-model切换
<template> |
Vue属性
Vue属性 | 类型 | 说明 |
---|---|---|
anchor |
对象 | 形式为bottom left 的字符串(垂直水平) |
self |
对象 | 形式为top left 的字符串(垂直水平) |
max-height |
字符串 | 弹出框内容的可选最大高度。例如:500px |
touch-position |
布尔 | 从用户点击/轻击锚点的位置打开弹出窗口。 |
fit |
布尔 | 弹出框将min-width 设置为与容器的width 相同。 |
disable |
布尔 | 当设置为“true”时,弹出框不会被触发。 |
offset |
2个数字的数组 | 水平和垂直偏移(以像素为单位)。例如:[18,18] 。 |
disable |
布尔 | 禁用弹出窗口 |
Vue方法
方法 | 说明 |
---|---|
show |
打开弹出框。在弹出框打开后需要一个可选的Function参数。 |
hide |
关闭弹出框。在弹出框关闭后触发一个可选的Function参数。 |
toggle |
切换打开/关闭弹出状态。 弹出框切换后触发一个可选的Function参数。 |
Vue事件
Vue方法 | 说明 |
---|---|
@show |
打开弹出框后触发。 |
@hide |
关闭弹出框后触发。 |
处理弹出框关闭
默认情况下,点击/轻按弹出框内容将关闭它。但是,如果您希望弹出框r内容中的元素关闭它,请使用Quasar指令v-close-overlay
。
处理定位
QPopover的位置可以自定义。它记录了可选的Vue属性anchor
和self
。看demo的演示。
计算QPopover弹出窗口的最终位置,使其显示在可用的屏幕上,在必要时切换到右侧 和/或 顶部。
QPopover触发打开时,如果您希望QPopover从触摸/点击点出现,则使用布尔Vue属性touch-position
:<q-popover touch-position>
...
</q-popover>
此demo为页面中心的大图指定了touch-position
属性, 。