【发布时间】:2021-04-05 14:31:49
【问题描述】:
当网站想要向用户显示任何消息时,我的页面顶部有一个 Flash 消息 div。
我希望 Flash 消息在几秒钟后淡出。我正在使用 CSS 过渡。
这是我的代码:
.flash {
position: fixed;
opacity: 1;
visibility: visible;
transition: opacity 2s ease-in, visibility 2s ease-in;
}
.hide {
visibility: hidden;
opacity: 0;
}
document.querySelectorAll('.flash').forEach(function(flash){
flash.classList.toggle('hide');
})
我希望当页面加载时,div 会在淡出之前可见。但是,在 Safari 中,当页面加载时,.flash 是不可见的。
在 Chrome 中,页面加载,.flash div 会按预期消失。但是,在重新加载页面时,该 div 仍然附加了 .hide 类,因此 flash 消息仍然不可见。 (我可以将状态存储在 HTML 中?!!)奇怪的是,在 Chrome 中,如果我在重新加载页面时使用开发人员工具检查文档中的元素,它就可以工作。
现在我很困惑。
为什么.hide 在页面重新加载时仍然附加到 div?
为什么 Safari 根本无法显示 div?
【问题讨论】:
-
我没有使用 jQuery。
-
youtube.com/watch?v=SPtSMjZlyUU(看 18:40 左右)CodeAndCreate 频道。这家伙 (George Lomidze) 是一名 CSS 动画向导
标签: javascript css-transitions