67 lines
1.7 KiB
JavaScript
67 lines
1.7 KiB
JavaScript
/*! UIkit 2.27.4 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
|
|
(function(UI) {
|
|
|
|
"use strict";
|
|
|
|
UI.component('alert', {
|
|
|
|
defaults: {
|
|
fade: true,
|
|
duration: 200,
|
|
trigger: '.uk-alert-close'
|
|
},
|
|
|
|
boot: function() {
|
|
|
|
// init code
|
|
UI.$html.on('click.alert.uikit', '[data-uk-alert]', function(e) {
|
|
|
|
var ele = UI.$(this);
|
|
|
|
if (!ele.data('alert')) {
|
|
|
|
var alert = UI.alert(ele, UI.Utils.options(ele.attr('data-uk-alert')));
|
|
|
|
if (UI.$(e.target).is(alert.options.trigger)) {
|
|
e.preventDefault();
|
|
alert.close();
|
|
}
|
|
}
|
|
});
|
|
},
|
|
|
|
init: function() {
|
|
|
|
var $this = this;
|
|
|
|
this.on('click', this.options.trigger, function(e) {
|
|
e.preventDefault();
|
|
$this.close();
|
|
});
|
|
},
|
|
|
|
close: function() {
|
|
|
|
var element = this.trigger('close.uk.alert'),
|
|
removeElement = function () {
|
|
this.trigger('closed.uk.alert').remove();
|
|
}.bind(this);
|
|
|
|
if (this.options.fade) {
|
|
element.css('overflow', 'hidden').css("max-height", element.height()).animate({
|
|
height : 0,
|
|
opacity : 0,
|
|
paddingTop : 0,
|
|
paddingBottom : 0,
|
|
marginTop : 0,
|
|
marginBottom : 0
|
|
}, this.options.duration, removeElement);
|
|
} else {
|
|
removeElement();
|
|
}
|
|
}
|
|
|
|
});
|
|
|
|
})(UIkit2);
|