使用HTML、CSS和Javascript创建SnackBar

使用HTML、CSS和Javascript创建SnackBar

SnackBar是一种通知栏,出现在网页底部,用于显示重要信息,通常用于确认操作或向用户提供反馈。它会在屏幕上显示几秒钟,然后消失。SnackBar是用户界面设计的重要组成部分,广泛用于Web应用程序。

方法1

在这里,我们将创建一个简单基本的SnackBar,它会显示3秒钟,当用户点击显示SnackBar按钮时消失。

步骤

  • 将HTML文档的标题设置为SnackBar。

  • 在样式部分:

    • 将body的内容居中。

    • 根据设计为按钮设置样式。

    • 默认隐藏SnackBar。

    • 为SnackBar添加显示和隐藏的动画。

  • 将标题设置为SnackBar。

  • 添加一个按钮和SnackBar元素。

  • 在脚本部分:

    • 创建一个函数来显示SnackBar,并在3秒后移除它。

示例

<!DOCTYPE html>
<html>
<head>
   <title>Snackbar</title>
   <style>
      body {
         background-color:lavender;
         /* Center the contents of body */
         display: flex;
         justify-content: center;
         align-items: center;
         flex-direction:column;
      }
      /* Custom button styling */
      .button {
         display: inline-block;
         padding: 10px 20px;
         background-color: #4CAF50;
         color: white;
         border-radius: 4px;
         text-decoration: none;
         font-size: 16px;
         cursor: pointer;
      }

      /* Snackbar styling */
      #snackbar {
         /* Hide the snackbar by default */
         visibility: hidden;
         min-width: 250px;
         margin-left: -125px;
         background-color: #333;
         color: #fff;
         text-align: center;
         border-radius: 2px;
         padding: 16px;
         position: fixed;
         z-index: 1;
         left: 50%;
         bottom: 30px;
      }

      /* Show the snackbar */
      #snackbar.show {
         visibility: visible;
         /* Add animation here */
         animation: fadein 0.5s, fadeout 0.5s 2.5s;
      }

      /* Snackbar animation */
      @keyframes fadein {
         from {bottom: 0; opacity: 0;}
         to {bottom: 30px; opacity: 1;}
      }

      @keyframes fadeout {
         from {bottom: 30px; opacity: 1;}
         to {bottom: 0; opacity: 0;}
      }
   </style>
</head>
<body>
   <h1>Snackbar</h1>
   <!-- Custom button element -->
   <button class="button" onclick="showSnackbar()">Show Snackbar</button>
   <!-- Snackbar element -->
   <div id="snackbar">Welcome to Tutorialspoint!</div>
   <script>
      function showSnackbar() {
         // Get the snackbar element
         var snackbar = document.getElementById("snackbar");

         // Add the "show" class to the snackbar element
         snackbar.className = "show";

         // After 3 seconds, remove the "show" class from the snackbar element
         setTimeout(function(){ snackbar.className = snackbar.className.replace("show", ""); }, 3000);
      }
   </script>
</body>
</html>

方法2

我们还可以添加一些操作到 snackbar 中,比如关闭或隐藏 snackbar。

步骤

  • 将标题设置为 Snackbar,并添加关闭操作。

  • 在样式部分,

    • 为关闭操作进行样式设置。

    • 为其添加悬停效果。

  • 将标题设置为 Snackbar,并添加关闭操作。

  • 添加一个按钮和 snackbar 元素。

  • 在脚本部分,

    • 创建一个函数来显示 snackbar。

    • 另一个函数来关闭它。

示例

<!DOCTYPE html>
<html>
<head>
   <meta charset="UTF-8">
   <title>Snackbar with dismiss action</title>
   <style>
      /* Styling for the body element */
      body {
         display: flex;
         justify-content: center;
         align-items: center;
         flex-direction: column;
         background-color: lavender;
      }
      /* Styling for the button element */
      button {
         display: inline-block;
         padding: 10px 20px;
         background-color: #4CAF50;
         color: white;
         border-radius: 4px;
         text-decoration: none;
         font-size: 16px;
         cursor: pointer;
      }
      /* Styling for the snackbar element */
      #snackbar {
         visibility: hidden;
         min-width: 250px;
         margin-left: -125px;
         background-color: #333;
         color: #fff;
         text-align: center;
         border-radius: 2px;
         padding: 16px;
         position: fixed;
         z-index: 1;
         left: 50%;
         bottom: 30px;
         font-size: 17px;
      }
      /* Styling for the snackbar element when it is visible */
      #snackbar.show {
         visibility: visible;
         -webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s;
         animation: fadein 0.5s, fadeout 0.5s 2.5s;
      }
      /* Animation for fading in the snackbar element */
      @-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;}
      }
      /* Animation for fading out the snackbar element */
      @-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;}
      }
      /* Styling for the dismiss action within the snackbar */
      #snackbarAction {
         color: #fff;
         cursor: pointer;
         border-radius: 2px;
         padding: 4px 8px;
         font-size: 14px;
         background-color: #5f5f5f;
         display: inline-block;
         margin-left: 16px;
      }
      /* Styling for the dismiss action within the snackbar when hovered over */
      #snackbarAction:hover {
         background-color: #4d4d4d;
      }
   </style>
</head>
<body>
   <h1>Snackbar with dismiss action</h1>
   <button onclick="showSnackbar()">Show Snackbar</button>
   <div id="snackbar">Snackbar message<span id="snackbarAction" onclick="dismissSnackbar()">Dismiss</span></div>
   <script>
      // Function to show the snackbar element
      function showSnackbar() {
         var snackbar = document.getElementById("snackbar");
         snackbar.className = "show";
      }
      // Function to dismiss the snackbar element
      function dismissSnackbar() {
         var snackbar = document.getElementById("snackbar");
         snackbar.className = "";
      }
   </script>
</body>
</html>

方法3

为了获得时尚优雅的外观,有必要自定义snackbar以匹配网站设计。

步骤

  • 设置相关标题。

  • 对内容进行样式设置。

  • 使用CSS自定义snackbar。

  • 添加JavaScript功能。

示例

<!DOCTYPE html>
<html>
<head>
   <title>Custom Snackbar Example</title>
   <style>
      /* styling for the body */
      body {
         display: flex;
         align-items: center;
         justify-content: center;
         height: 100vh;
         margin: 0;
         padding: 0;
         background-color: lavender;
         flex-direction: column;
      }
      /* styling for the button */
      .button {
         display: inline-block;
         padding: 10px 20px;
         background-color: #4CAF50;
         color: white;
         border-radius: 4px;
         text-decoration: none;
         font-size: 16px;
         cursor: pointer;
      }
      /* styling for the snackbar */
      .snackbar {
         background-color: #61a4f0;
         color: #fff;
         display: flex;
         align-items: center;
         justify-content: space-between;
         position: fixed;
         bottom: 20px;
         left: 50%;
         transform: translateX(-50%);
         border-radius: 40px;
         padding: 20px;
         width: 300px;
         box-shadow: 0 5px 10px rgba(0, 0, 0, 0.3);
         z-index: 1;
         animation: slideIn 0.5s ease-in-out;
      }
      /* hiding the snackbar */
      .snackbar.hidden {
         display: none;
      }
      /* styling for the snackbar dismiss button */
      .snackbar button {
         background-color: transparent;
         color: #fff;
         border:none;
         font-size: 1rem;
         font-weight: bold;
         cursor: pointer;
         margin-left: 10px;
      }
      /* defining the slide-in animation for snackbar */
      @keyframes slideIn {
         from {
            bottom: -100px;
            opacity: 0;
         }
         to {
            bottom: 20px;
            opacity: 1;
         }
      }
   </style>
</head>
<body>
   <h1>Coloured Snackbar</h1>
   <button class="button" onclick="showSnackbar()">Show Snackbar</button>
   <div id="snackbar" class="snackbar hidden">
      <span>Snackbar Message</span>
      <button onclick="hideSnackbar()">Dismiss</button>
   </div>
   <script>
      /* function to show the snackbar */
      function showSnackbar() {
         var snackbar = document.getElementById("snackbar");
         snackbar.classList.remove("hidden");
         /* hiding the snackbar after 3 seconds */
         setTimeout(function(){ snackbar.classList.add("hidden"); }, 3000);
      }

      /* function to hide the snackbar */
      function hideSnackbar() {
         var snackbar = document.getElementById("snackbar");
         snackbar.classList.add("hidden");
      }
   </script>
</body>
</html>

结论

用户界面中的小吃货用于向用户显示简短而精确的信息。重要的是要让这些消息可以被忽略。它应该只用于显示需要用户关注的重要信息。另一个重要的注意点是这些消息不应包含任何机密和敏感信息。小吃货显示的持续时间必须较短。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

CSS 精选笔记