Вы на правильном пути. Вместо того, чтобы прослушивать щелчок по предупреждению, используйте кнопку, поскольку я предполагаю, что она есть по этой причине. При нажатии на кнопку класс .hide
должен быть добавлен к предупреждению. Это начнет переход от opacity: 1;
к opacity: 0;
.
. Я предлагаю вместо использования inline-styles придерживаться классов. Встроенные стили трудно перезаписать, и вы не можете использовать всю мощь CSS. Поэтому я добавил несколько классов, чтобы помочь вам.
Попробуйте пример ниже.
<div class="ddAlert hidden" id="alert">
SOME ANNOYING ALERT HERE!
<button type="button" id="dismiss">X</button>
</div>
.ddAlert {
display: block;
transition: opacity 1s;
}
.hide {
opacity: 0;
}
.hidden {
display: none;
}
document.addEventListener("DOMContentLoaded", function() {
let dismissed = sessionStorage.getItem("dismissed");
let alertDiv = document.getElementById("alert");
let dismissButton = document.getElementById("dismiss");
if (!dismissed) {
alertDiv.classList.remove("hidden");
}
dismissButton.addEventListener("click", function() {
alertDiv.classList.add("hide");
});
alertDiv.addEventListener("transitionend", function({ target }) {
if (target.classList.contains("hide")) {
target.classList.add("hidden");
}
sessionStorage.setItem("dismissed", true);
});
});