css - css动画结束后不显示
问题描述
我有一个工作动画,它从纯 CSS 加载开始。两者的问题opacity
在于visibility
,即使 div 被隐藏,它仍然会占用空间。
问题
display: none
动画完成后如何使 div 消失?
笔记
- 我希望有一个纯 CSS 解决方案。hackish 解决方案越少越好。
- 我见过类似的问题,但不完全是这种情况,也没有很好的答案。
- 我使用
animation
而不是transition
因为它在加载时动画。
.message.success {
background: #28a745;
color: #fff;
animation: autohide 2s forwards;
padding: 1rem;
}
@keyframes autohide {
0% {
opacity: 1;
}
90% {
opacity: 1;
}
100% {
opacity: 0;
}
}
<div class="message success">
Success!
</div>
This text below is expected to jump up after animation is done.
解决方案
您可以使用该height
属性来实现此效果:
@keyframes autohide {
0% {
opacity: 1;
}
90% {
opacity: 1;
}
99% {
height: auto;
padding: 1rem;
}
100% {
opacity: 0;
height: 0;
padding: 0;
}
}
height
一直保持auto
到接近动画结束 (99%),然后在0
完成时设置为。
推荐阅读
- google-cloud-platform - 如何使 Ansible Dynamic Inventory 与 Google Cloud Platform (Google Compute Engine)、GCP 一起使用
- python - 设置远程python解释器时删除默认参数
- magento-1.9 - 我可以在创建时明确设置 Magento 1.9 订单增量 ID
- gradle - org.gradle.api.UncheckedIOException:无法为文件创建 MD5 哈希
- node.js - 为什么 node.js (Express) 不为这条路线提供服务?我该如何解决?
- javascript - 从 2 个或更多 spritesheets 创建动画 - Phaser
- sql - 如何使用条件搜索历史表并在同一个表中更新?
- html - VBA IE与大表单交互
- sql - laravel 使用控制器向数据库添加和删除列
- php - 如果有混合类型数组,如何为 IN 子句准备语句?