javascript - 如何在使用 javascript 和 css 弹出的消息上设置动画或使用过渡效果?

标签 javascript css css-transitions

我目前可以根据需要显示和消失消息,但转换不起作用,这是我尝试过的方法。

const alertMsg = document.querySelector('.alert');
contactForm.addEventListener('submit', formSubmitted);


function formSubmitted(e) {
  //other stuff

  alertMsg.style.display = 'block';
  setTimeout(() => {
    alertMsg.style.display = 'none';
  }, 5000);
}
.alert {
  transition: all 0.5s ease-out;
}
<div class="alert">Your message has been sent, I will get back to you as soon as possible.</div>

消息立即消失并重新出现,我如何使用当前的过渡来制作某种动画?

这是我的第一个问题,很抱歉,如果我遗漏了任何信息,我会根据需要添加更多信息。谢谢

最佳答案

不能转换(或动画)显示属性。 display 属性是 onoff 没有任何过渡或动画。

您可以做的是为不透明度设置动画并在开始和结束时更改显示属性。

类似于:

@keyframes showBlock {
    from { display: block; opacity: 0; }
    to { opacity: 1; }
}

@keyframes hideBlock {
   from { opacity: 1; }
   to { opacity: 0; display: none; }
}

关于javascript - 如何在使用 javascript 和 css 弹出的消息上设置动画或使用过渡效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51624729/

相关文章:

html - 如何将这个 href 放在 div 的底部

css - bootstrap 4 轮播图像未出现(包含覆盖)

jquery - CSS-transition 等于 SlideToggle 动画

jquery - 在 CSS3 或 jQuery 中,将元素的宽度从 0% 动画化到 100%,它和它的包装器只需要它们需要的宽度,没有预设宽度

firefox - Firefox 中缓慢的 CSS3 动画闪烁

javascript - 如何使用angularjs在传单标记上触发事件

javascript - 将 MM/DD/YYYY 转换为 YYYYMMDD 格式 (javascript)

javascript - 在嵌套 ul 上使用 knockoutjs 数据绑定(bind)

javascript - 如何打印由其他属性组成的 JSON 一部分的字符串数组

jquery - 如何停止这种恼人的 css 行为