如何使用 CSS 和 JavaScript 建立 Snackbar/Toast 提示框?
如果你想向用戶顯示任何資訊的通知,例如購買產品的優惠券,你可以建立一個 Snackbar 提示框。將其用作彈出視窗,以在螢幕底部顯示訊息。通常,Snackbar 提示框會在一段時間後消失。Snackbar 提示框會淡入,並在一段時間後淡出。讓我們看看如何透過單擊按鈕使用 CSS 和 JavaScript 建立 Snackbar 提示框。
建立 Snackbar 提示框按鈕
為了使 Snackbar 提示框出現,你需要點選一個按鈕。使用`
<button class="snackBtn">Show Snackbar</button> <h2>Click on the above button to see snackbar message</h2>
設定 Snackbar 提示框文字
單擊 Snackbar 按鈕時出現的 Snackbar 文字:
<div class="snackText">Apply the coupon code AMIT15 to get 15% Off.</div>
設定 Snackbar 提示框文字樣式
Snackbar 預設情況下是隱藏的,並且在單擊按鈕時出現。因此,將文字的 visibility 屬性設定為 hidden。此外,使用 position 屬性和 fixed 值設定固定位置:
.snackText { visibility: hidden; min-width: 250px; margin-left: -125px; background-color: rgb(110, 26, 106); color: #fff; text-align: center; border-radius: 2px; padding: 16px; position: fixed; z-index: 1; left: 50%; bottom: 30px; font-size: 17px; }
指令碼
以下是使 Snackbar 提示框出現然後消失的指令碼。單擊按鈕後,Snackbar 提示框將出現,並在 3 秒後消失。我們在這裡設定了 3000 毫秒,即 3 秒:
<script> document .querySelector(".snackBtn") .addEventListener("click", showSnackBar); function showSnackBar() { var x = document.querySelector(".snackText"); x.className += " show"; setTimeout(function() { x.className = x.className.replace("show", ""); }, 3000); } </script>
顯示 snacktext
我們上面已經將 snacktext 設定為不可見,但是單擊按鈕後它將出現。為實現此目的,我們將 visibility 屬性設定為 visible:
.snackText.show { visibility: visible; animation: fadein 0.5s, fadeout 0.5s 2.5s; }
示例
要使用 CSS 和 JavaScript 建立 Snackbar/Toast 提示框,程式碼如下:
<!DOCTYPE html> <html> <head> <style> body { font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; } .snackText { visibility: hidden; min-width: 250px; margin-left: -125px; background-color: rgb(110, 26, 106); color: #fff; text-align: center; border-radius: 2px; padding: 16px; position: fixed; z-index: 1; left: 50%; bottom: 30px; font-size: 17px; } .snackBtn { border: none; padding: 10px; font-size: 18px; background-color: rgb(92, 0, 128); color: white; } .snackText.show { visibility: visible; animation: fadein 0.5s, fadeout 0.5s 2.5s; } @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 / Toast Example</h1> <button class="snackBtn">Show Snackbar</button> <h2>Click on the above button to see snackbar message</h2> <div class="snackText">Apply the coupon code AMIT15 to get 15% Off.</div> <script> document .querySelector(".snackBtn") .addEventListener("click", showSnackBar); function showSnackBar() { var x = document.querySelector(".snackText"); x.className += " show"; setTimeout(function() { x.className = x.className.replace("show", ""); }, 3000); } </script> </body> </html>
廣告