0

0

css 想让元素从透明到可见有动画怎么办_设置 opacity 和 keyframes 实现渐显

P粉602998670

P粉602998670

发布时间:2026-01-30 14:16:03

|

173人浏览过

|

来源于php中文网

原创

最直接的opacity动画需用@keyframes定义从0到1的关键帧,配合animation属性;若交互触发则优先用transition,注意初始状态、visibility配合及兼容性问题。

css 想让元素从透明到可见有动画怎么办_设置 opacity 和 keyframes 实现渐显

@keyframes 定义 opacity 动画最直接

CSS 动画的核心是定义关键帧,@keyframes 里写好起始和结束的 opacity 值就行。注意:必须从 opacity: 0 开始、到 opacity: 1 结束,中间不能跳过 0 或 1,否则动画可能不触发或表现异常。

常见错误是只写了 animation: fade-in 0.3s; 却忘了定义 @keyframes fade-in浏览器会静默忽略动画。

  • opacity 是 CSS 属性,不是动画专用值,所以必须配合 animationtransition 才能动起来
  • 动画名(如 fade-in)要和 animation-name 保持一致,大小写敏感
  • 别在 @keyframes 里写 display: none —— display 不支持过渡/动画,会导致瞬间闪现
@keyframes fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

.element {
  animation: fade-in 0.3s ease-out;
}

transition 更适合交互触发的渐显

如果元素是点击、悬停或 JS 控制显示(比如 classList.add('show')),transitionanimation 更轻量、更可控。它依赖属性变化本身,不需要预设时间轴。

关键点在于:初始状态必须有 opacity: 0visibility: hidden(或 pointer-events: none),否则过渡前元素可能仍可点击或占位。

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

万兴爱画
万兴爱画

万兴爱画AI绘画生成工具

下载
  • 必须显式声明 transition: opacity 0.3s ease-out,只写 transition: all 容易引发意外过渡(比如边框、颜色也跟着动)
  • visibility: hidden → visible 本身不可过渡,所以仅靠 visibility 切换不会产生淡入效果;得靠 opacity 配合
  • 如果元素默认是 display: none,先得用 JS 改成 display: block(或其他合适值),再加类触发动画,否则 opacity 过渡不生效
.element {
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease-out;
}

.element.show {
  opacity: 1;
  visibility: visible;
}

IE 和旧版 Safari 对 opacity 动画的支持要注意

IE10+ 和 Safari 6.1+ 都支持 opacitytransitionanimation,但 IE9 及以下完全不支持 opacity 动画(只支持滤镜 filter: alpha(opacity=0),且无法过渡)。

如果你的项目还要兼容 IE9,就得放弃纯 CSS 方案,改用 JS 库(如 jQuery 的 .fadeIn())或现代 polyfill(如 animate.css 的降级处理)。

  • 移动端 iOS Safari 9.3+ 对 @keyframes + opacity 支持稳定,但早期版本(如 iOS 8)在 position: fixed 元素上偶发卡顿
  • 动画中避免同时操作 opacitytransform,某些安卓 WebView 会因图层合成问题导致闪烁
  • 性能敏感场景(如列表滚动中逐个淡入),优先用 will-change: opacity 提示浏览器优化,但别滥用,否则可能增加内存开销

为什么有时动画“没反应”?检查这三处

最常见的失效原因不是写法错,而是上下文干扰。尤其容易被忽略的是父容器或自身样式冲突。

  • 父元素设置了 overflow: hidden,而子元素动画时 opacity 变化区域超出边界,看起来像“没动”
  • 元素本身有 opacity: 0.5 内联样式,会覆盖 CSS 中的 opacity: 0 初始值,导致 from 帧无效
  • 动画触发时元素还没渲染完成(比如 JS 在 DOMContentLoaded 前就加了动画类),可以加 setTimeout(() => el.classList.add('animate'), 0) 或用 requestAnimationFrame 确保渲染队列清空

opacity 动画看着简单,但真正稳落地的关键,在于初始状态是否干净、触发时机是否准确、以及有没有被其他样式悄悄覆盖。动手前先用 DevTools 检查 computed 样式里的 opacity 值变化过程,比猜更快。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
jquery插件有哪些
jquery插件有哪些

jquery插件有jQuery UI、jQuery Validate、jQuery DataTables、jQuery Slick、jQuery LazyLoad、jQuery Countdown、jQuery Lightbox、jQuery FullCalendar、jQuery Chosen和jQuery EasyUI等。本专题为大家提供jquery插件相关的文章、下载、课程内容,供大家免费下载体验。

151

2023.09.12

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

311

2023.10.13

jquery删除元素的方法
jquery删除元素的方法

jquery可以通过.remove() 方法、 .detach() 方法、.empty() 方法、.unwrap() 方法、.replaceWith() 方法、.html('') 方法和.hide() 方法来删除元素。更多关于jquery相关的问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

396

2023.11.10

jQuery hover()方法的使用
jQuery hover()方法的使用

hover()是jQuery中一个常用的方法,它用于绑定两个事件处理函数,这两个函数将在鼠标指针进入和离开匹配的元素时执行。想了解更多hover()的相关内容,可以阅读本专题下面的文章。

504

2023.12.04

jquery实现分页方法
jquery实现分页方法

在jQuery中实现分页可以使用插件或者自定义实现。想了解更多jquery分页的相关内容,可以阅读本专题下面的文章。

187

2023.12.06

jquery中隐藏元素是什么
jquery中隐藏元素是什么

jquery中隐藏元素是非常重要的一个概念,在使用jquery隐藏元素之前,需要先了解css样式中关于元素隐藏的属性,比如display、visibility、opacity等属性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

120

2024.02.23

jquery中什么是高亮显示
jquery中什么是高亮显示

jquery中高亮显示是指对页面搜索关键词时进行高亮显示,其实现办法:1、先获取要高亮显示的行,获取搜索的内容,再遍历整行内容,最后添加高亮颜色;2、使用“jquery highlight”高亮插件。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

176

2024.02.23

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

39

2026.01.13

C++ 设计模式与软件架构
C++ 设计模式与软件架构

本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

14

2026.01.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.8万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.1万人学习

CSS教程
CSS教程

共754课时 | 25.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

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