the best modal you can get.
npm install --save-dev vue-comps-modalor include build/bundle.js.
# in your component
components:
"modal": require("vue-comps-modal")
# or, when using bundle.js
components:
"modal": window.vueComps.modal<button> Open Modal
<modal>
Content
</modal>
</button>For examples see dev/.
Note, that the modal will be appended to document.body on first opening.
| Name | type | default | description |
|---|---|---|---|
| opacity | Number | 0.5 | opacity of the overlay |
| not-dismissable | Boolean | false | can it get closed by click on overlay or ESC? |
| ignore-parent | Boolean | false | will not set-up click listener on parent |
| is-opened | Boolean | false | (two-way) set to open / close |
| transition | String | - | name of a vue transition. Detailed description |
| parent | Element | parentElement | where to listen for open click |
| z-index | Number | 1500 | minimum zIndex of the overlay, cannot be lower than 1000 (see vue-overlay for specifics) |
| Name | description |
|---|---|
| before-enter | will be called before open animation |
| after-enter | will be called when opened |
| before-leave | will be called before close animation |
| after-leave | will be called when closed |
You can provide a vue transition like this:
Vue.transition("fade",{
// your transition
})
// or in the instance:
transitions: {
fade: {
// your transition
}
}
// usage:
template: "<modal transition='fade'></modal>"The background is a singleton, you can globaly provide a custom fade function. This has to be done only once (when you use webpack):
Velocity = require("velocity-animate")
Overlay = require("vue-overlay")
Overlay.obj.methods.fade = function ({el,opacity,cb}) {
Velocity el, {opacity: opacity},{
duration: 300,
queue: false,
easing: 'easeOutQuad',
complete: cb
}
}-
1.1.0
now using vue transitions
events are renamed after vue transitions -
1.0.0
addedz-indexprop removecloseevent listening
Clone repository.
npm install
npm run devBrowse to http://localhost:8080/.
Copyright (c) 2016 Paul Pflugradt Licensed under the MIT license.