diff options
Diffstat (limited to 'assets/js/toaster.js')
| -rw-r--r-- | assets/js/toaster.js | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/assets/js/toaster.js b/assets/js/toaster.js new file mode 100644 index 0000000..044230a --- /dev/null +++ b/assets/js/toaster.js @@ -0,0 +1,65 @@ +/** + * Toaster.js + * + * Repository: https://github.com/BigCoke233/toaster.js + * Version: 1.0.0 + * + * jQuery required! + */ + + Toaster = function() { + + Toaster.amount = 0; + + Toaster.default = { + color: '#C5C56A', + autoClose: true, + autoCloseDelay: 2000, + position: 'right-top' + }; + + //core method + Toaster.toast = function(m, options = Toaster.default){ + if($('#toast-'+Toaster.amount).length) Toaster.dismiss('#toast-'+Toaster.amount); + Toaster.amount++; + + var id = 'toast-'+Toaster.amount; + var selector = '#'+id; + $toast = $('<div class="toaster"></div>').attr('id',id).text(m).css({'background': options.color || Toaster.default.color}).addClass('toaster-'+(options.position || Toaster.default.position)); + $('body').append($toast); + setTimeout(function(){ + $(selector).addClass('toasting'); + }, 1); + + $(selector).click(function(){ + if(options.onClick) options.onClick(); + Toaster.dismiss(selector); + }); + + var autoClose=Toaster.default.autoClose; + if(options.autoClose!==undefined) autoClose=options.autoClose; + if(autoClose) { + setTimeout(function(){ + Toaster.dismiss(selector); + }, options.autoCloseDelay || Toaster.default.autoCloseDelay); + } + } + Toaster.send = Toaster.toast; //for downward compatibility + + //quick method + Toaster.error = function(m, options) { + Toaster.default.color='#F44236'; + Toaster.toast(m, options); + Toaster.default.color='#C5C56A'; + } + + //dismiss given toast + Toaster.dismiss = function(toast) { + $(toast).removeClass('toasting').addClass('toast-dismissed'); + setTimeout(function(){ + $(toast).remove(); + }, 1000); + } +}; + +new Toaster();
\ No newline at end of file |
