首页 > web前端 > css教程 > 正文

css animation与visibility结合制作显示隐藏动画

P粉602998670
发布: 2025-10-07 20:05:02
原创
492人浏览过
使用visibility与opacity结合可实现元素的淡入淡出动画,解决display:none无法触发动画的问题。通过animation控制visibility和opacity属性,在视觉隐藏的同时避免交互响应,常用于提示框、弹窗等需要平滑显示隐藏的场景。关键在于利用visibility控制元素是否参与渲染,opacity实现透明度变化,配合forwards保持动画终态,从而达到“真正隐藏”的效果。

css animation与visibility结合制作显示隐藏动画

使用 CSS animationvisibility 结合,可以实现更完整的显示隐藏动画效果。因为 display: none 无法触发过渡或动画,而 visibility 可以配合 opacity 实现淡入淡出的同时控制元素是否可被渲染,是制作“真正隐藏”动画的常用技巧。

visibility 与 opacity 配合原理

visibility: hidden 会让元素不可见但仍占据布局空间,visibility: visible 恢复可见。结合 opacity 的透明度变化,可以在视觉上实现淡入淡出动画,同时通过 visibility 控制元素是否参与交互和渲染。

关键点:

  • visibility 支持 transition 和 animation
  • 仅靠 opacity 淡出后元素仍可点击或占用空间
  • visibilityopacity 同时控制,才能实现“视觉消失 + 不占交互”的效果

使用 animation 制作淡入动画

定义一个从隐藏到显示的动画,开始时 opacityvisibility 均为隐藏状态,动画过程中改变这两个属性。

立即学习前端免费学习笔记(深入)”;

@keyframes fadeIn {
  from {
    opacity: 0;
    visibility: hidden;
  }
  to {
    opacity: 1;
    visibility: visible;
  }
}
<p>.element {
opacity: 0;
visibility: hidden;
animation: fadeIn 0.5s forwards;
}</p>
登录后复制

注意:forwards 确保动画结束后保持最终状态。这样元素在动画前完全隐藏,播放后正常显示。

制作淡出并隐藏的动画

当需要隐藏元素时,使用另一个动画将 opacity 降为 0,同时在最后设置 visibility: hidden

芦笋演示
芦笋演示

一键出成片的录屏演示软件,专为制作产品演示、教学课程和使用教程而设计。

芦笋演示 34
查看详情 芦笋演示
@keyframes fadeOut {
  from {
    opacity: 1;
    visibility: visible;
  }
  to {
    opacity: 0;
    visibility: hidden;
  }
}
<p>.hide {
animation: fadeOut 0.5s forwards;
}</p>
登录后复制

这个动画执行完成后,元素不仅看不见,也不会响应点击或影响布局感知(虽然仍占文档流位置,但已不可交互)。

完整示例:hover 显示/隐藏提示框

假设有一个按钮,鼠标悬停时显示提示文字,使用动画平滑出现和消失。

.tooltip {
  opacity: 0;
  visibility: hidden;
  background: #333;
  color: white;
  padding: 8px;
  border-radius: 4px;
  transition: opacity 0.3s ease;
}
<p>.container:hover .tooltip {
animation: fadeIn 0.3s forwards;
}</p><p>@keyframes fadeIn {
to {
opacity: 1;
visibility: visible;
}
}</p><p>.container .tooltip {
animation: fadeOut 0.3s forwards;
}</p><p>/<em> 实际中可通过 JS 添加/移除类来触发动画 </em>/</p>
登录后复制

更推荐用 JS 控制类名切换,避免 hover 时频繁重启动画。

基本上就这些。关键是理解 visibility 虽然不能像 display 那样彻底移除元素,但它能参与动画过程,结合 opacity 就能做出自然的显示隐藏动效。不复杂但容易忽略细节。

以上就是css animation与visibility结合制作显示隐藏动画的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号