Modal
Provides a resizable, drag and drop window with toolbar functionality.
Getting Started
First load the seed and CSS files, if you haven't yet.
<script src="https://cdn.alloyui.com/3.0.1/aui/aui-min.js"></script>
<link href="https://cdn.alloyui.com/3.0.1/aui-css/css/bootstrap.min.css" rel="stylesheet"></link>
Then initialize AlloyUI and load the Modal module.
YUI().use(
'aui-modal',
function(Y) {
// code goes here
}
);
Using Modal
Create an HTML element to house the modal window.
<div id="modal"></div>
Then initialize a new instance of modal, rendering it to your HTML element, passing in some bodyContent
and headerContent
.
Set centered
to true
to position the modal in the center of your window. Don't forget to render it!
YUI().use(
'aui-modal',
function(Y) {
var modal = new Y.Modal(
{
bodyContent: 'Modal body',
centered: true,
headerContent: 'Modal header',
render: '#modal'
}
).render();
}
);
Configuring Modal
By default, all instances of modal can be resized and dragged. Both of these features can be disabled by setting resizable
and draggable
to false
.
YUI().use(
'aui-modal',
function(Y) {
var modal = new Y.Modal(
{
bodyContent: 'Modal body',
centered: true,
draggable: false,
headerContent: 'Modal header',
render: '#modal',
resizable: false
}
).render();
}
);
A defined height
and width
can be set, and the resizing handles can be repositioned to any side of the modal.
YUI().use(
'aui-modal',
function(Y) {
var modal = new Y.Modal(
{
bodyContent: 'Modal body',
centered: true,
headerContent: 'Modal header',
height: 200,
render: '#modal',
//setting a bottom and right side handle
resizable: {
handles: 'b, r'
},
width: 300
}
).render();
}
);
A useful functionality of modal, is the seamless inclusion of toolbars, which can be added to the header, body, and even footer of the modal.
YUI().use(
'aui-modal',
function(Y) {
var modal = new Y.Modal(
{
bodyContent: 'Modal body',
centered: true,
headerContent: 'Modal header',
render: '#modal',
toolbars: {
body: [
{
label: 'Button'
}
],
footer: [
{
label: 'Close'
}
]
}
}
).render();
}
);