如何创建:Snackbar / Toast
学习如何使用 CSS 和 JavaScript 创建 Snackbar/Toast。
Snackbar / Toast
Snackbar 通常被用作在屏幕底部显示消息的工具提示/弹出窗口。
点击按钮显示 Snackbar。它将在 3 秒后消失。
Some text some message..
创建 Snackbar
第一步 - 添加 HTML:
<!-- 使用按钮打开 snackbar --> <button onclick="myFunction()">Show Snackbar</button> <!-- 实际的 snackbar --> <div id="snackbar">Some text some message..</div>
第二步 - 添加 CSS:
设置 snackbar 的样式并添加动画:
/* snackbar - 将其定位在屏幕底部和中间 */
#snackbar {
visibility: hidden; /* 默认隐藏,点击时可见 */
min-width: 250px; /* 设置默认最小宽度 */
margin-left: -125px; /* 将 min-width 的值除以2 */
background-color: #333; /* 黑色背景色 */
color: #fff; /* 白色文本颜色 */
text-align: center; /* 文本居中 */
border-radius: 2px; /* 圆角边框 */
padding: 16px; /* 内边距 */
position: fixed; /* 固定在屏幕顶部 */
z-index: 1; /* 如果需要,添加z-index */
left: 50%; /* 将snackbar居中 */
bottom: 30px; /* 距离底部 30px */
}
/* 单击按钮时显示 snackbar(使用 JavaScript 添加的类) */
#snackbar.show {
visibility: visible; /* Show the snackbar */
/* 添加动画:用0.5秒淡入和淡出 snackbar。但是,将淡出过程延迟 2.5 秒。 */
-webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s;
animation: fadein 0.5s, fadeout 0.5s 2.5s;
}
/* 淡入和淡出 snackbar 的动画 */
@-webkit-keyframes fadein {
from {bottom: 0; opacity: 0;}
to {bottom: 30px; opacity: 1;}
}
@keyframes fadein {
from {bottom: 0; opacity: 0;}
to {bottom: 30px; opacity: 1;}
}
@-webkit-keyframes fadeout {
from {bottom: 30px; opacity: 1;}
to {bottom: 0; opacity: 0;}
}
@keyframes fadeout {
from {bottom: 30px; opacity: 1;}
to {bottom: 0; opacity: 0;}
}
第三步 - 添加 JavaScript:
使用 JavaScript 通过点击按钮向 snackbar 容器添加 "show" 类:
function myFunction() {
// 获取 snackbar DIV
var x = document.getElementById("snackbar");
// 向 DIV 添加 "show" 类
x.className = "show";
// 3秒后,从 DIV 中删除 "show" 类
setTimeout(function(){ x.className = x.className.replace("show", ""); }, 3000);
}