프론트엔드/Tips

[자바스크립트] 토스트 메시지 띄우기

Marshall K 2019. 6. 8. 19:47

클릭해보세요



말 그대로 토스트 기계에서 토스트 구운 것처럼 툭 튀어 올라왔다 내려가는 팝업입니다.

특정 버튼을 클릭하는 등 무슨 동작을 했을 때 변경 점을 직관적으로 알려주기 좋다고 생각해 함수를 만들어 사용하는 중입니다.


HTML

<div id="toast"></div>


CSS

#toast {
position: fixed;
bottom: 30px;
left: 50%;
padding: 15px 20px;
transform: translate(-50%, 10px);
border-radius: 30px;
overflow: hidden;
font-size: .8rem;
opacity: 0;
visibility: hidden;
transition: opacity .5s, visibility .5s, transform .5s;
background: rgba(0, 0, 0, .35);
color: #fff;
z-index: 10000;
}

#toast.reveal {
opacity: 1;
visibility: visible;
transform: translate(-50%, 0)
}


Javascript

let removeToast;

function toast(string) {
const toast = document.getElementById("toast");

toast.classList.contains("reveal") ?
(clearTimeout(removeToast), removeToast = setTimeout(function () {
document.getElementById("toast").classList.remove("reveal")
}, 1000)) :
removeToast = setTimeout(function () {
document.getElementById("toast").classList.remove("reveal")
}, 1000)
toast.classList.add("reveal"),
toast.innerText = string
}


3000이란 수치를 조절하시면 토스트가 사라지는 타이밍을 조절하실 수 있습니다.