mirror of
https://github.com/mdbootstrap/mdb-ui-kit.git
synced 2024-11-25 11:04:09 +03:00
Moved material-snackbar to separated repository.
If you are looking for it visit it in its new home http://fezvrasta.github.io/snackbarjs/
This commit is contained in:
parent
d5f468d7fc
commit
cb72933a68
|
@ -1,129 +0,0 @@
|
||||||
// Material Snackbar plugin - generates snackbars and toasts
|
|
||||||
|
|
||||||
/* globals jQuery */
|
|
||||||
|
|
||||||
var snackbars = [];
|
|
||||||
|
|
||||||
(function( $ ){
|
|
||||||
|
|
||||||
$(document).ready(function() {
|
|
||||||
$("body").append("<div/>").attr("id", "snackbar-container");
|
|
||||||
});
|
|
||||||
|
|
||||||
function isset(variable) {
|
|
||||||
if (typeof variable !== "undefined" && variable !== null) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$(document).on("click", "[data-toggle=snackbar]", function() {
|
|
||||||
$(this).snackbar("toggle");
|
|
||||||
});
|
|
||||||
|
|
||||||
$.snackbar = function(options) {
|
|
||||||
|
|
||||||
if (isset(options) && options === Object(options)) {
|
|
||||||
var $snackbar;
|
|
||||||
|
|
||||||
if (!isset(options.id)) {
|
|
||||||
$snackbar = $("<div/>").attr("id", "snackbar" + Date.now()).attr("class", "snackbar");
|
|
||||||
} else {
|
|
||||||
$snackbar = $("#" + options.id);
|
|
||||||
}
|
|
||||||
|
|
||||||
var snackbarStatus = $snackbar.hasClass("snackbar-opened");
|
|
||||||
|
|
||||||
if (isset(options.style)) {
|
|
||||||
$snackbar.attr("class", "snackbar " + options.style);
|
|
||||||
} else {
|
|
||||||
$snackbar.attr("class", "snackbar");
|
|
||||||
}
|
|
||||||
|
|
||||||
options.autohide = (isset(options.autohide)) ? options.autohide : 3000;
|
|
||||||
|
|
||||||
if (isset(options.content)) {
|
|
||||||
if ($snackbar.find(".snackbar-content").length) {
|
|
||||||
$snackbar.find(".snackbar-content").text(options.content);
|
|
||||||
} else {
|
|
||||||
$snackbar.prepend("<span class=snackbar-content>" + options.content + "</span>");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isset(options.id)) {
|
|
||||||
$snackbar.appendTo("#snackbar-container");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Show or hide item
|
|
||||||
if (isset(options.action) && options.action == "toggle") {
|
|
||||||
if (snackbarStatus) {
|
|
||||||
options.action = "hide";
|
|
||||||
} else {
|
|
||||||
options.action = "show";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var animationId1 = Date.now();
|
|
||||||
$snackbar.data("animationId1", animationId1);
|
|
||||||
setTimeout(function() {
|
|
||||||
if ($snackbar.data("animationId1") === animationId1) {
|
|
||||||
if (!isset(options.action) || options.action == "show") {
|
|
||||||
var offset = 20;
|
|
||||||
console.log($(".snackbar-opened").length);
|
|
||||||
if ($(".snackbar-opened").length) {
|
|
||||||
offset = $(".snackbar-opened:last").offset().top - $(window).scrollTop();
|
|
||||||
console.log(offset);
|
|
||||||
}
|
|
||||||
$snackbar.addClass("snackbar-opened").css("bottom", offset);
|
|
||||||
} else if (isset(options.action) && options.action == "hide") {
|
|
||||||
$snackbar.removeClass("snackbar-opened");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, 50);
|
|
||||||
|
|
||||||
// Set timer for item autohide
|
|
||||||
var animationId2 = Date.now();
|
|
||||||
$snackbar.data("animationId2", animationId2);
|
|
||||||
|
|
||||||
if (options.authide !== 0) {
|
|
||||||
setTimeout(function() {
|
|
||||||
if ($snackbar.data("animationId2") === animationId2) {
|
|
||||||
$snackbar.removeClass("snackbar-opened");
|
|
||||||
}
|
|
||||||
}, options.autohide);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $snackbar;
|
|
||||||
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
$.fn.snackbar = function(action) {
|
|
||||||
|
|
||||||
var options;
|
|
||||||
|
|
||||||
if (!isset(action) || action === "show" || action === "hide" || action == "toggle") {
|
|
||||||
options = {
|
|
||||||
content: $(this).attr("data-content"),
|
|
||||||
style: $(this).attr("data-style")
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset(action)) {
|
|
||||||
options.id = this.attr("data-snackbar-id");
|
|
||||||
|
|
||||||
if(action === "show" || action === "hide" || action == "toggle") {
|
|
||||||
options.action = action;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var $snackbar = $.snackbar(options);
|
|
||||||
this.attr("data-snackbar-id", $snackbar.attr("id"));
|
|
||||||
|
|
||||||
return $snackbar;
|
|
||||||
|
|
||||||
};
|
|
||||||
})( jQuery );
|
|
Loading…
Reference in New Issue
Block a user