2020-08-13 15:18:26 +08:00
## Popover
### Usage
Similaire à Tooltip, Popover est aussi construit avec `Vue-popper` . Certains attributs sont donc les mêmes, vous pourrez vous référer à la documentation de Tooltip pour certains d'entre eux.
2020-11-29 18:50:46 +08:00
:::demo L'attribut `trigger` détermine comment le popover se déclenche: `hover` , `click` , `focus` ou `manual` . Concernant l'élément déclencheur, vous pouvez l'écrire de deux manières: en utilisant le slot `#reference` ou bien la directive `v-popover` avec `ref` égal à popover.
2020-08-13 15:18:26 +08:00
```html
< template >
< el-popover
placement="top-start"
title="Title"
2020-11-04 15:01:37 +08:00
:width="200"
2020-08-13 15:18:26 +08:00
trigger="hover"
2020-11-04 15:01:37 +08:00
content="this is content, this is content, this is content"
>
< template #reference >
< el-button > S'active au passage du curseur< / el-button >
2020-12-22 16:05:04 +08:00
< / template >
2020-08-13 15:18:26 +08:00
< / el-popover >
< el-popover
placement="bottom"
title="Title"
2020-11-04 15:01:37 +08:00
:width="200"
2020-08-13 15:18:26 +08:00
trigger="click"
2020-11-04 15:01:37 +08:00
content="this is content, this is content, this is content"
>
< template #reference >
< el-button > S'active en cliquant< / el-button >
< / template >
2020-08-13 15:18:26 +08:00
< / el-popover >
< el-popover
ref="popover"
placement="right"
title="Title"
2020-11-04 15:01:37 +08:00
:width="200"
2020-08-13 15:18:26 +08:00
trigger="focus"
2020-11-04 15:01:37 +08:00
content="this is content, this is content, this is content"
>
< template #reference >
< el-button > S'active au focus< / el-button >
< / template >
2020-08-13 15:18:26 +08:00
< / el-popover >
< el-popover
placement="bottom"
title="Title"
2020-11-04 15:01:37 +08:00
:width="200"
2020-08-13 15:18:26 +08:00
trigger="manual"
content="this is content, this is content, this is content"
2020-11-04 15:01:37 +08:00
v-model:visible="visible"
>
< template #reference >
< el-button @click =" visible = !visible" > S'active manuellement</ el-button >
< / template >
2020-08-13 15:18:26 +08:00
< / el-popover >
< / template >
< script >
export default {
data() {
return {
visible: false
};
}
};
< / script >
2021-06-25 16:09:42 +08:00
<!--
< setup >
import { defineComponent, ref } from 'vue';
export default defineComponent({
setup() {
return {
visible: ref(false),
};
},
});
< / setup >
-->
2020-08-13 15:18:26 +08:00
```
:::
### Informations imbriquées
D'autres composants peuvent s'imbriquer dans un popover.
:::demo Remplacez `content` par un `slot` .
```html
< el-popover
placement="right"
2020-11-04 15:01:37 +08:00
:width="400"
trigger="click"
>
< template #reference >
< el-button > Cliquez pour activer< / el-button >
< / template >
2020-08-13 15:18:26 +08:00
< el-table :data = "gridData" >
< el-table-column width = "150" property = "date" label = "date" > < / el-table-column >
< el-table-column width = "100" property = "name" label = "name" > < / el-table-column >
< el-table-column width = "300" property = "address" label = "address" > < / el-table-column >
< / el-table >
< / el-popover >
< script >
export default {
data() {
return {
gridData: [{
date: '2016-05-02',
name: 'Jack',
address: 'New York City'
}, {
date: '2016-05-04',
name: 'Jack',
address: 'New York City'
}, {
date: '2016-05-01',
name: 'Jack',
address: 'New York City'
}, {
date: '2016-05-03',
name: 'Jack',
address: 'New York City'
}]
};
}
};
< / script >
2021-06-25 16:09:42 +08:00
<!--
< setup >
import { defineComponent, reactive, toRefs } from 'vue';
export default defineComponent({
setup() {
const state = reactive({
gridData: [
{
date: '2016-05-02',
name: 'Jack',
address: 'New York City',
},
{
date: '2016-05-04',
name: 'Jack',
address: 'New York City',
},
{
date: '2016-05-01',
name: 'Jack',
address: 'New York City',
},
{
date: '2016-05-03',
name: 'Jack',
address: 'New York City',
},
],
});
return {
...toRefs(state),
};
},
});
< / setup >
-->
2020-08-13 15:18:26 +08:00
```
:::
### Opérations imbriquées
Vous pouvez aussi imbriquer des opérations. Procéder ainsi est plus léger que d'utiliser Dialog.
:::demo
```html
< el-popover
placement="top"
2020-11-04 15:01:37 +08:00
:width="160"
v-model:visible="visible"
>
2020-08-13 15:18:26 +08:00
< p > Voulez-vous vraiment supprimer ceci?< / p >
< div style = "text-align: right; margin: 0" >
< el-button size = "mini" type = "text" @click =" visible = false" > Annuler</ el-button >
< el-button type = "primary" size = "mini" @click =" visible = false" > Confirmer</ el-button >
< / div >
2020-11-04 15:01:37 +08:00
< template #reference >
< el-button @click =" visible = true" > Supprimer</ el-button >
< / template >
2020-08-13 15:18:26 +08:00
< / el-popover >
< script >
export default {
data() {
return {
2021-06-25 16:09:42 +08:00
visible: false
2020-08-13 15:18:26 +08:00
};
}
2021-06-25 16:09:42 +08:00
};
2020-08-13 15:18:26 +08:00
< / script >
2021-06-25 16:09:42 +08:00
<!--
< setup >
import { defineComponent, ref } from 'vue';
export default defineComponent({
setup() {
return {
visible: ref(false),
};
},
});
< / setup >
-->
2020-08-13 15:18:26 +08:00
```
:::
### Attributs
| Attribut | Description | Type | Valeurs acceptées | Défaut |
|--------------------|----------------------------------------------------------|-------------------|-------------|--------|
| trigger | Comment le popover se déclenche. | string | click/focus/hover/manual | click |
| title | Titre du popover. | string | — | — |
| content | Contenu du popover, peut être remplacé par un `slot` | string | — | — |
| width | Largeur du popover. | string, number | — | Min width 150px |
| placement | Emplacement du popover. | string | top/top-start/top-end/bottom/bottom-start/bottom-end/left/left-start/left-end/right/right-start/right-end | bottom |
| disabled | Si le popover est désactivé. | boolean | — | false |
2020-12-27 14:15:15 +08:00
| visible / v-model:visible | Si le popover est visible. | Boolean | — | false |
2020-08-13 15:18:26 +08:00
| offset | Décalage du popover. | number | — | 0 |
| transition | Animation de transition du popover. | string | — | el-fade-in-linear |
2020-12-22 16:05:04 +08:00
| show-arrow | Si une flèche doit être affichée ou non. Pour plus d'informations, référez-vous à [Vue-popper ](https://github.com/element-component/vue-popper ). | boolean | — | true |
2020-08-13 15:18:26 +08:00
| popper-options | Paramètres pour [popper.js ](https://popper.js.org/documentation.html ). | object | Référez-vous à [popper.js ](https://popper.js.org/documentation.html ). | `{ boundariesElement: 'body', gpuAcceleration: false }` |
| popper-class | Classe du popover. | string | — | — |
2021-01-26 11:50:29 +08:00
| show-after | Délai avant l'apparition en millisecondes. | number | — | 0 |
| hide-after | Le temps de disparaître en millisecondes | number | — | 0 |
| auto-close | Délai avant disparition. | number | — | 0 |
2021-03-26 16:01:29 +08:00
| tabindex | [tabindex ](https://developer.mozilla.org/fr/docs/Web/HTML/Attributs_universels/tabindex ) de Popover | number | — | — |
2020-08-13 15:18:26 +08:00
### Slot
| Nom | Description |
| --- | --- |
| — | Contenu du popover. |
2020-10-16 11:14:34 +08:00
| reference | Element Plus HTML qui déclenche le popover. |
2020-08-13 15:18:26 +08:00
### Évènements
| Nom | Description | Paramètres |
|---------|--------|---------|
| show | Se déclenche quand le popover s'affiche. | — |
| after-enter | Se déclenche quand la transition d'entrée se termine. | — |
| hide | Se déclenche quand le popover disparaît. | — |
| after-leave | Se déclenche quand la transition de sortie se termine. | — |