Я использую здесь код закуски https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_snackbar, который имеет функцию тайм-аута для скрытия div после завершения fadeout. Работает нормально, но не очень синхронизировано. Иногда я вижу, что затухание резко останавливается, в то время как в других случаях оно появляется после затухания, а затем быстро исчезает.
Было бы неплохо синхронизировать затухание со скрытием, а не полагаться на жестко запрограммированное время ожидания, но я не знаю, как это сделать. добиться этого после нескольких испытаний. Обратите внимание, что из-за некоторых технических ограничений я не могу использовать расширенные функции css или html, а не jquery.
<html>
<head>
<meta http-equiv='X-UA-Compatible' content='IE=11'>
<style type='text/css'>
#snackbar {
visibility: hidden;
min-width: 250px;
margin: auto;
background-color: #c8bed9;
color: #000000;
text-align: center;
transform: translateX(-50%);
border-radius: 2px;
padding: 16px;
position: fixed;
z-index: 1;
left: 50%;
bottom: 30px;
font-weight: bold;
font-family: "Arial", Times, serif;
font-size: 20px;
}
#snackbar.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>
<div id="snackbar">This should show some text and some message if needed...</div>
<script>
function terminate()
{
var elm = document.getElementById("snackbar");
setTimeout(function() {
elm.className = "show";
document.getElementById("loading_wheel").style.display = "none";
}, 200);
setTimeout(function() {
elm.className = "";
}, 3000);
return false;
}
window.onload = terminate;
</script>
</body>
</html>