Popup Vue Component
- Popup Components
- Popup Properties
- Popup Methods
- Popup Events
- Open And Close Popup
- Access To Popup Instance
- Examples
Popup is a popup window with any HTML content that pops up over App’s main content. Popup as all other overlays is part of so called “Temporary Views”.
Popup Vue component represents Popup component.
Popup Components
There are following components included:
**f7-popup**
- popup element
Popup Properties
Prop | Type | Description |
---|---|---|
<f7-popup> properties | ||
tablet-fullscreen | boolean | Defines whether the popup should be displayed fullscreen on tablets or not |
opened | boolean | Allows to open/close Popup and set its initial state |
backdrop | boolean | Enables Popup backdrop (dark semi transparent layer behind). By default inherits same app parameter value (true ) |
backdropEl | string object | HTML element or string CSS selector of custom backdrop element |
closeByBackdropClick | boolean | When enabled, popup will be closed on backdrop click. By default inherits same app parameter value (true ) |
closeOnEscape | boolean | When enabled, popup will be closed on ESC keyboard key press |
animate | boolean | Whether the Popup should be opened/closed with animation or not. Can be overwritten in .open() and .close() methods. By default inherits same app parameter value (true ) |
swipeToClose | boolean string | Whether the Popup can be closed with swipe gesture. Can be true to allow to close popup with swipes to top and to bottom, or can be to-top (string) to allow only swipe to top to close popup, or to-bottom (string) to allow only swipe to bottom to close. |
swipeHandler | HTMLElement string | If not passed, then whole popup can be swiped to close. You can pass here HTML element or string CSS selector of custom element that will be used as a swipe target. (swipeToClose must be also enabled) |
Popup Methods
<f7-popup> methods | |
---|---|
.open(animate) | Open popup |
.close(animate) | Close popup |
Popup Events
Event | Description |
---|---|
<f7-popup> events | |
popup:open | Event will be triggered when Popup starts its opening animation |
popup:opened | Event will be triggered after Popup completes its opening animation |
popup:close | Event will be triggered when Popup starts its closing animation |
popup:closed | Event will be triggered after Popup completes its closing animation |
Open And Close Popup
You can control Popup state, open and closing it:
- using Popup API
- by passing
true
orfalse
to itsopened
prop - by clicking on Link or Button with relevant
popup-open
property (to open it) andpopup-close
property to close it
Access To Popup Instance
You can access Popup initialized instance by accessing **.f7Popup**
component’s property.
Examples
<template>
<f7-page @page:beforeremove="onPageBeforeRemove">
<f7-navbar title="Popup"></f7-navbar>
<f7-block>
<p>
<f7-button fill popup-open=".demo-popup">Open Popup</f7-button>
</p>
<p>
<f7-button fill @click="popupOpened = true">Open Via Prop Change</f7-button>
</p>
<p>
<f7-button fill @click="createPopup">Create Dynamic Popup</f7-button>
</p>
<p>
<f7-button fill popup-open=".demo-popup-swipe">Swipe To Close</f7-button>
</p>
<p>
<f7-button fill popup-open=".demo-popup-swipe-handler">With Swipe Handler</f7-button>
</p>
</f7-block>
<f7-popup class="demo-popup" :opened="popupOpened" @popup:closed="popupOpened = false">
<f7-page>
<f7-navbar title="Popup Title">
<f7-nav-right>
<f7-link popup-close>Close</f7-link>
</f7-nav-right>
</f7-navbar>
<f7-block>
<p>Here comes popup. You can put here anything, even independent view with its own navigation. Also not, that by default popup looks a bit different on iPhone/iPod and iPad, on iPhone it is fullscreen.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit...</p>
<p>Duis ut mauris sollicitudin, venenatis nisi sed, luctus ligula...</p>
</f7-block>
</f7-page>
</f7-popup>
<f7-popup class="demo-popup-swipe" swipe-to-close>
<f7-page>
<f7-navbar title="Swipe To Close">
<f7-nav-right>
<f7-link popup-close>Close</f7-link>
</f7-nav-right>
</f7-navbar>
<div style="height: 100%" class="display-flex justify-content-center align-items-center">
<p>Swipe me up or down</p>
</div>
</f7-page>
</f7-popup>
<f7-popup class="demo-popup-swipe-handler" swipe-to-close swipe-handler=".swipe-handler">
<f7-page>
<f7-block-title large>Hello!</f7-block-title>
<f7-block strong>
<p class="swipe-handler"><b>Swipe works only on this paragraph</b></p>
<p>Lorem ipsum dolor sit amet...</p>
</f7-block>
</f7-page>
</f7-popup>
</f7-page>
</template>
<script>
export default {
data() {
return {
popupOpened: false,
};
},
methods: {
createPopup() {
const self = this;
// Create popup
if (!self.popup) {
self.popup = self.$f7.popup.create({
content: `
<div class="popup">
<div class="page">
<div class="navbar">
<div class="navbar-inner">
<div class="title">Dynamic Popup</div>
<div class="right"><a href="#" class="link popup-close">Close</a></div>
</div>
</div>
<div class="page-content">
<div class="block">
<p>This popup was created dynamically</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse faucibus mauris leo, eu bibendum neque congue non...</p>
</div>
</div>
</div>
</div>
`.trim(),
});
}
// Open it
self.popup.open();
},
onPageBeforeRemove() {
const self = this;
// Destroy popup when page removed
if (self.popup) self.popup.destroy();
},
},
};
</script>
当前内容版权归 Framework7 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 Framework7 .