Vue.js Overlay is a practical, modern and convenient overlay (popup) Vue.js component.
It is a stylish popup component for Vue.js that you can easily use in your projects.
The most important features are flexible, modern, animated, stable, lightweight.
npm install vuejs-overlay --save
<div id="app">
    <overlay :opened="opened" :visible="visible" @closed="opened = visible = false">
        <span>My popup</span>
    </overlay>
    
    <button @click="opened = visible = true">Open Popup</button>
</div>// ES6
import Overlay from 'vuejs-overlay';
new Vue({
    el: '#app',
    data() {
        return {
            opened: false,
            visible: false
        }
    },
    components: {
        Overlay
    }
});You can make the configurations with props.
| Configuration | Type | Default | Description | 
|---|---|---|---|
| animate | String, Boolean | false | You can choose which animation the popup will open and close. | 
| backdrop | Boolean | true | Specifies whether the popup has a backdrop. | 
| close-on-escape | Boolean | true | This is to close the popup with the escape key. | 
| close-on-cancel | Boolean | true | This is to close the popup with the cancel button. | 
| close-by-backdrop-click | Boolean | true | This is to close the popup when the backdrop is clicked. | 
| closeable | Boolean | true | Closing feature of the popup. You can use it in critical form operations. | 
| opened | Boolean | false | Specifies the popup is opened. | 
| header | String, Boolean | false | Used to determine the header text of the popup. | 
| visible | Boolean | false | Specifies that internal elements are loaded of the popup. | 
"bounce", "fade", "slide-down", "slide-left", "slide-right", "slide-up", "zoom-in", "zoom-out", false.
<overlay animate="zoom-in" :opened="opened" :visible="visible" @closed="opened = visible = false">
    <div>👍</div>
</overlay>Let's take an example of content data with ajax. In this example we used vuejs-ajax library.
<div id="app">
    <overlay :opened="opened" :visible="visible" @closed="onClosed">
        <span v-text="text"></span>
    </overlay>
    
    <button @click="openHandle">Open Popup</button>
</div>import ajax from "vuejs-ajax";
import {Overlay} from 'vuejs-overlay.js';
Vue.use(ajax);
new Vue({
    el: '#app',
    data() {
        return {
            opened: false,
            visible: false,
            text: null,
        }
    },
    methods: {
        openHandle() {
            this.overlayOpened = true;
            Vue.ajax.get("example.com/my-request-url").then(response => {
                this.text = response.data;
                this.visible = true;
            });
        },
        onClosed() {
            this.opened = false;
            this.visible = false;
        }
    },
    components: {
        Overlay
    }
});| Configuration | Type | Description | 
|---|---|---|
| @closed | Callback | Triggers when the popup is closed. We recommend that you use this to ensure stable operation of this component when closing the popup. | 
| @opened | Callback | Triggers when the popup is opened. | 
<overlay :opened="opened" :visible="visible" @closed="opened = visible = false" @opened="someCallback">
    <span>My popup</span>
</overlay>Copyright (c) 2019 Fatih Koca

