mSnackbar.js是一个轻量级且可自定义的jQuery通知插件,用于在页面上创建受材料设计启发的小吃条。
该插件可以更容易地显示屏幕底部出现的小型临时通知弹出窗口。通常用于向用户显示简短消息,如确认或错误消息
1.下载并插入主脚本mSnackbar.js语言
在jQuery库之后。
<script src="/path/to/cdn/jquery.min.js"></script> <script src="/path/to/mSnackbar.js"></script>
2.在网页中添加一个基本的小吃条。
$(document).ready (function (){ $.mSnackbar.add({ text: 'Message Here', }); });
3.设定小吃条的使用寿命。
// auto-dismiss after 5 seconds $.mSnackbar.add({ text: 'Message Here', lifespan: 5000, }); // always shown $.mSnackbar.add({ text: 'Message Here', lifespan: Infinity, });
4.在小吃条中添加一个动作按钮。
$.mSnackbar.add({ text: 'Message Here', actions: [{ text: 'Action Button', color: '#4F46E5', onClick: function() { // do something } }], });
5.确定是否在小吃条内显示关闭按钮。
$.mSnackbar.add({ text: 'Message Here', noCloseButton: true, });
6.覆盖默认的CSS来创建自己的样式。
#mSnackbarContainer .mSnackbar .mSnackbar-action, #mSnackbarContainer .mSnackbar .mSnackbar-close-button { cursor: pointer; position: relative; } #mSnackbarContainer .mSnackbar .mSnackbar-action::after, #mSnackbarContainer .mSnackbar .mSnackbar-close-button::after { transition: all 0.2s; position: absolute; content: ""; width: 100%; height: 100%; right: 0; top: 0; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } #mSnackbarContainer .mSnackbar .mSnackbar-action:hover::after, #mSnackbarContainer .mSnackbar .mSnackbar-close-button:hover::after { background-color: #ffffff13; } #mSnackbarContainer .mSnackbar .mSnackbar-action:active::after, #mSnackbarContainer .mSnackbar .mSnackbar-close-button:active::after { background-color: #ffffff3c; } .mSnackbar-content > i { font-style: normal; } #mSnackbarContainer { display: flex; flex-flow: column nowrap; align-items: flex-end; z-index: 1000; position: fixed; right: 20px; overflow: hidden; pointer-events: none; bottom: 0; transition: transform 0.5s; font-family: sans-serif, "Roboto"; } #mSnackbarContainer .snackbar-wrapper { overflow: hidden; } #mSnackbarContainer .mSnackbar { display: flex; flex-flow: row nowrap; align-items: center; pointer-events: all; line-height: 22px; padding: 14px 14px 14px 24px; background-color: #323232; color: #DEDEDE; font-size: 14px; z-index: 100; min-width: 288px; max-width: 568px; border-radius: 4px; margin-bottom: 20px; box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12); -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; transition: all 0.2s ease-in-out; } @media (orientation: portrait) { #mSnackbarContainer .mSnackbar { max-width: 100%; margin: 0; } } #mSnackbarContainer .mSnackbar .mSnackbar-close-button { height: 24px; width: 24px; margin-left: 12px; } #mSnackbarContainer .mSnackbar .mSnackbar-close-button::after { border-radius: 100%; width: 40px; height: 40px; } #mSnackbarContainer .mSnackbar .mSnackbar-action { margin: 0 7.5px 0 11.5px; font-weight: bold; } #mSnackbarContainer .mSnackbar .mSnackbar-action::after { width: calc(100% + 15px); height: calc(100% + 15px); border-radius: 4px; } #mSnackbarContainer .mSnackbar span:first-of-type { margin: 0 7.5px 0 19.5px; } #mSnackbarContainer .mSnackbar .mSnackbar-flex-grow-spacer { flex-grow: 1; } @media (orientation: portrait) { #mSnackbarContainer { right: 0; } } .no-transition { transition: none !important; }