jQuery中可定制 材料设计小吃 mSnackbar.js

  • 源码大小:10.63KB
  • 所需积分:1积分
  • 源码编号:19JP-3234
  • 浏览次数:629次
  • 最后更新:2023年05月20日
  • 所属栏目:其他
本站默认解压密码:19jp.com 或 19jp_com

简介

mSnackbar.js是一个轻量级且可自定义的jQuery通知插件,用于在页面上创建受材料设计启发的小吃条。

该插件可以更容易地显示屏幕底部出现的小型临时通知弹出窗口。通常用于向用户显示简短消息,如确认或错误消息

参见:

  • jQuery和纯JavaScript中的10个最佳Snackbar插件
  • 10个最佳Toast通知jQuery/JavaScript插件

如何使用它:

1.下载并插入主脚本mSnackbar.js语言在jQuery库之后。

  1. <script src="/path/to/cdn/jquery.min.js"></script>
  2. <script src="/path/to/mSnackbar.js"></script>

2.在网页中添加一个基本的小吃条。

  1. $(document).ready (function (){
  2. $.mSnackbar.add({
  3. text: 'Message Here',
  4. });
  5. });

3.设定小吃条的使用寿命。

  1. // auto-dismiss after 5 seconds
  2. $.mSnackbar.add({
  3. text: 'Message Here',
  4. lifespan: 5000,
  5. });
  6.  
  7. // always shown
  8. $.mSnackbar.add({
  9. text: 'Message Here',
  10. lifespan: Infinity,
  11. });

4.在小吃条中添加一个动作按钮。

  1. $.mSnackbar.add({
  2. text: 'Message Here',
  3. actions: [{
  4. text: 'Action Button',
  5. color: '#4F46E5',
  6. onClick: function() {
  7. // do something
  8. }
  9. }],
  10. });

5.确定是否在小吃条内显示关闭按钮。

  1. $.mSnackbar.add({
  2. text: 'Message Here',
  3. noCloseButton: true,
  4. });

6.覆盖默认的CSS来创建自己的样式。

  1. #mSnackbarContainer .mSnackbar .mSnackbar-action, #mSnackbarContainer .mSnackbar .mSnackbar-close-button {
  2. cursor: pointer;
  3. position: relative;
  4. }
  5. #mSnackbarContainer .mSnackbar .mSnackbar-action::after, #mSnackbarContainer .mSnackbar .mSnackbar-close-button::after {
  6. transition: all 0.2s;
  7. position: absolute;
  8. content: "";
  9. width: 100%;
  10. height: 100%;
  11. right: 0;
  12. top: 0;
  13. position: absolute;
  14. top: 50%;
  15. left: 50%;
  16. transform: translate(-50%, -50%);
  17. }
  18. #mSnackbarContainer .mSnackbar .mSnackbar-action:hover::after, #mSnackbarContainer .mSnackbar .mSnackbar-close-button:hover::after {
  19. background-color: #ffffff13;
  20. }
  21. #mSnackbarContainer .mSnackbar .mSnackbar-action:active::after, #mSnackbarContainer .mSnackbar .mSnackbar-close-button:active::after {
  22. background-color: #ffffff3c;
  23. }
  24.  
  25. .mSnackbar-content > i {
  26. font-style: normal;
  27. }
  28.  
  29. #mSnackbarContainer {
  30. display: flex;
  31. flex-flow: column nowrap;
  32. align-items: flex-end;
  33. z-index: 1000;
  34. position: fixed;
  35. right: 20px;
  36. overflow: hidden;
  37. pointer-events: none;
  38. bottom: 0;
  39. transition: transform 0.5s;
  40. font-family: sans-serif, "Roboto";
  41. }
  42. #mSnackbarContainer .snackbar-wrapper {
  43. overflow: hidden;
  44. }
  45. #mSnackbarContainer .mSnackbar {
  46. display: flex;
  47. flex-flow: row nowrap;
  48. align-items: center;
  49. pointer-events: all;
  50. line-height: 22px;
  51. padding: 14px 14px 14px 24px;
  52. background-color: #323232;
  53. color: #DEDEDE;
  54. font-size: 14px;
  55. z-index: 100;
  56. min-width: 288px;
  57. max-width: 568px;
  58. border-radius: 4px;
  59. margin-bottom: 20px;
  60. 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);
  61. -webkit-user-select: none;
  62. -moz-user-select: none;
  63. -ms-user-select: none;
  64. user-select: none;
  65. transition: all 0.2s ease-in-out;
  66. }
  67. @media (orientation: portrait) {
  68. #mSnackbarContainer .mSnackbar {
  69. max-width: 100%;
  70. margin: 0;
  71. }
  72. }
  73. #mSnackbarContainer .mSnackbar .mSnackbar-close-button {
  74. height: 24px;
  75. width: 24px;
  76. margin-left: 12px;
  77. }
  78. #mSnackbarContainer .mSnackbar .mSnackbar-close-button::after {
  79. border-radius: 100%;
  80. width: 40px;
  81. height: 40px;
  82. }
  83. #mSnackbarContainer .mSnackbar .mSnackbar-action {
  84. margin: 0 7.5px 0 11.5px;
  85. font-weight: bold;
  86. }
  87. #mSnackbarContainer .mSnackbar .mSnackbar-action::after {
  88. width: calc(100% + 15px);
  89. height: calc(100% + 15px);
  90. border-radius: 4px;
  91. }
  92. #mSnackbarContainer .mSnackbar span:first-of-type {
  93. margin: 0 7.5px 0 19.5px;
  94. }
  95. #mSnackbarContainer .mSnackbar .mSnackbar-flex-grow-spacer {
  96. flex-grow: 1;
  97. }
  98. @media (orientation: portrait) {
  99. #mSnackbarContainer {
  100. right: 0;
  101. }
  102. }
  103.  
  104. .no-transition {
  105. transition: none !important;
  106. }

预览截图