w3.css
스낵바 / 토스트
CSS와 JavaScript를 사용하여 스낵바/토스트를 만드는 방법을 알아보자.
스낵바 만들기
스낵바는 종종 화면 하단에 메시지를 표시하는 툴팁/팝업으로 사용된다.
버튼을 클릭하면 스낵바가 표시되고 3초 후에 사라진다.
1단계) HTML 추가
<!-- Use a button to open the snackbar --> <button onclick="myFunction()">Show Snackbar</button> <!-- The actual snackbar --> <div id="snackbar">Some text some message..</div>
2단계) CSS 추가
스낵바 스타일 지정 및 애니메이션 추가:
/* The snackbar - position it at the bottom and in the middle of the screen */ #snackbar { visibility: hidden; /* Hidden by default. Visible on click */ min-width: 250px; /* Set a default minimum width */ margin-left: -125px; /* Divide value of min-width by 2 */ background-color: #333; /* Black background color */ color: #fff; /* White text color */ text-align: center; /* Centered text */ border-radius: 2px; /* Rounded borders */ padding: 16px; /* Padding */ position: fixed; /* Sit on top of the screen */ z-index: 1; /* Add a z-index if needed */ left: 50%; /* Center the snackbar */ bottom: 30px; /* 30px from the bottom */ } /* Show the snackbar when clicking on a button (class added with JavaScript) */ #snackbar.show { visibility: visible; /* Show the snackbar */ /* Add animation: Take 0.5 seconds to fade in and out the snackbar. However, delay the fade out process for 2.5 seconds */ -webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s; animation: fadein 0.5s, fadeout 0.5s 2.5s; } /* Animations to fade the snackbar in and out */ @-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;} } @-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;} }
3단계) JavaScript 추가
버튼을 클릭하여 JavaScript를 사용하여 스낵바 컨테이너에 “show” 클래스를 추가한다.
function myFunction() { // Get the snackbar DIV var x = document.getElementById("snackbar"); // Add the "show" class to DIV x.className = "show"; // After 3 seconds, remove the show class from DIV setTimeout(function(){ x.className = x.className.replace("show", ""); }, 3000); }
기본 예시
예제 보기참고
W3C School - How TO - Snackbar / Toast