2020/09/04 加筆
バージョンアップさせ、非jQuery依存にしましたので、Androidっぽい見た目のトースト通知を作ってみた(非jQuery依存)の方をご覧ください
Androidで数秒で消える通知メッセージ(トースト通知)を、jQueryで実装してみました。
見た目もAndroid風で、画面下のセンターに黒背景・白文字で表示します。
(IE9~11、Chrome、FireFoxで動作確認)
トースト通知のJavaScript版ライブラリとしては、Toastrというライブラリが有名なようです。
JavaScript
// トースト通知クラス
var Toast = (function(){
var timer;
var speed;
function Toast() {
this.speed = 3000;
}
// メッセージを表示。表示時間(speed)はデフォルトで3秒
Toast.prototype.show = function(message, speed) {
if (speed === undefined) speed = this.speed;
$('.toast').remove();
clearTimeout(this.timer);
$('body').append('<div class="toast">' + message + '</div>');
var leftpos = $('body').width()/2 - $('.toast').outerWidth()/2;
$('.toast').css('left', leftpos).hide().fadeIn('fast');
this.timer = setTimeout(function() {
$('.toast').fadeOut('slow',function(){
$(this).remove();
});
}, speed);
};
// 明示的にメッセージを消したい場合は使う
Toast.prototype.hide = function() {
$('.toast').fadeOut('slow',function() {
$(this).remove();
});
}
return Toast;
})();
CSS
.toast{
position: fixed;
bottom: 10px;
display: inline-block;
background: rgba(0, 0, 0, 0.6);
color: #fff;
border-radius: 15px;
padding: 8px 15px;
border: none;
z-index: 1000;
box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.2);
font-size: 13px;
}
var toast = new Toast();
で初期化して、
使うときは、toast.show(msg);
またはtoast.show(msg, 5000);
みたいに
使います。