如何使用 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>
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP