freeCodeCamp 课程实战:用 CSS 动画让元素从左向右移动时逐渐淡出(opacity 关键帧)

发布时间:2026/10/24 5:51:49

freeCodeCamp 课程实战:用 CSS 动画让元素从左向右移动时逐渐淡出(opacity 关键帧) freeCodeCamp 课程实战用 CSS 动画让元素从左向右移动时逐渐淡出opacity 关键帧【免费下载链接】freeCodeCampfreeCodeCamp.orgs open-source codebase and curriculum. Learn math, programming, and computer science for free.项目地址: https://gitcode.com/GitHub_Trending/fr/freeCodeCamp本文基于 freeCodeCamp 课程中的挑战文档 Create Visual Direction by Fading an Element from Left to Right 展开讲解如何在一个已有的keyframes位移动画中通过给50%关键帧添加opacity: 0.1来实现元素向右移动时逐渐淡出的视觉方向感。读完后你将掌握opacity属性在关键帧中的取值含义、如何在固定定位position: fixed元素上组合left与opacity两种属性做联动动画并理解该挑战在 freeCodeCamp Responsive Web Design 课程体系中前后知识的衔接关系。挑战目标为位移动画叠加淡出效果原始文档的描述部分--description--说明了任务背景本挑战要求你改变一个动画元素的opacity不透明度使其在到达屏幕右侧时逐渐变淡。文档原文指出在演示动画中这个带渐变背景的圆形元素会按照keyframes规则在动画进行到 50% 时移动到屏幕右侧。也就是说初始代码里已经存在一个位置移动的动画——球从视口左侧 20% 处出发在动画中点50%关键帧移动到 60% 处——本挑战要做的不是从零写动画而是在这个既有动画中叠加透明度变化让位置 透明度共同表达从左向右离去的视觉方向visual direction。任务指令--instructions--非常明确选中 id 为ball的元素在50%处添加值为 0.1 的opacity属性让元素在向右移动时逐渐淡去。对应的提示--hints--给出了课程测试用例的判定逻辑即keyframes fade规则必须在50%关键帧内同时包含left: 60%与opacity: 0.1两个属性的书写顺序不限assert.match(code,/keyframes fade\s*?{\s*?50%\s*?{\s*?(?:left:\s*?60%;\s*?opacity:\s*?0?\.1;|opacity:\s*?0?\.1;\s*?left:\s*?60%;)/gi );从这条正则可以读出课程验收的两个要点opacity的值写作0.1或.1均可0?\.1表示前导0可选opacity: 0.1必须与left: 60%出现在同一个50%关键帧块内而不是写在0%或100%。初始代码seed逐行解析挑战的起始代码--seed-contents--如下共分为#ball样式规则和keyframes fade规则两部分style #ball { width: 70px; height: 70px; margin: 50px auto; position: fixed; left: 20%; border-radius: 50%; background: linear-gradient( 35deg, #ccffff, #ffcccc ); animation-name: fade; animation-duration: 3s; } keyframes fade { 50% { left: 60%; } } /style div idball/div逐项理解各属性的作用属性值作用width/height70px定义 70×70 的正方形基元border-radius50%把正方形变成圆形margin: 50px auto自动水平外边距在默认流中水平居中与left共同决定初始视觉位置position: fixed固定定位让元素相对浏览器视口定位使left: 20%表示视口宽度的 20%left: 20%水平偏移初始位置视口左侧 20% 处动画的起点background: linear-gradient(35deg, #ccffff, #ffcccc)线性渐变35° 方向上从浅青到浅粉的渐变填充即文档所称的gradient backgroundanimation-name: fade动画名把元素与下方名为fade的keyframes规则关联起来animation-duration: 3s动画时长一次完整动画周期为 3 秒这里有两个关键设计值得注意position: fixed是动画能移动的前提。CSS 的偏移属性left/right/top/bottom只有在元素具有定位如fixed、relative、absolute时才能通过改变数值产生位移效果。freeCodeCamp 同 block 的前一课 Create Movement Using CSS Animation 的原文正是这样概括的When elements have a specifiedposition, such asfixedorrelative, the CSS offset propertiesright,left,top, andbottomcan be used in animation rules to create movement. 本挑战的 seed 沿用了这一前提球是fixed定位left才能在20% → 60%之间被动画驱动。seed 的keyframes fade只有50%一个关键帧。这并非疏漏而是刻意留下的填空课程只要求你补opacity其余帧的行为交给 CSS 的插值机制下一节详述。参考解答在 50% 关键帧加入 opacity: 0.1挑战的参考解答--solutions--与 seed 的唯一差异就是在keyframes fade的50%关键帧中补上一行opacity: 0.1;style #ball { width: 70px; height: 70px; margin: 50px auto; position: fixed; left: 20%; border-radius: 50%; background: linear-gradient( 35deg, #ccffff, #ffcccc ); animation-name: fade; animation-duration: 3s; } keyframes fade { 50% { left: 60%; opacity: 0.1; } } /style div idball/div改动只有一行但效果是位移 淡出的联动动画前半程0% → 50%left从20%平滑插值到60%opacity从默认值1完全不透明插值到0.1几乎完全透明——球向右移动的同时越来越淡动画后半程50% → 100%由于没有100%关键帧CSS 会从50%的状态反向插值回到元素的静态样式left: 20%、opacity: 1即球向左飞回起点并重新变实。opacity的取值语义在 freeCodeCamp 本课系的 Decrease the Opacity of an Element 一课中有权威定义A value of 1 is opaque, which isnt transparent at all. A value of 0.5 is half see-through. A value of 0 is completely transparent.因此0.1处于接近完全透明的区间距离全透明 0 只差 10% 透明度选它而不是0的原因是保留一丝可见性让元素正在淡出离去的过程更自然若写opacity: 0元素会完全消失视觉上的方向感反而弱了。另外opacity作用于元素整体——无论是渐变背景还是内部文本会作为一个整体一起变透明这一点在上一课文档中也已说明The value given will apply to the entire element。只写一个 50% 关键帧动画为何仍然完整这是理解本挑战的核心原理。按 Learn How the CSS keyframes and animation Properties Work 一课的讲解keyframes规则通过给 0% 到 100% 之间的特定帧指定 CSS 属性来描述动画过程而元素不必显式声明0%和100%帧未显式声明的0%/100%状态默认取元素本身的样式值本例中即left: 20%、opacity: 1相邻关键帧之间或起始/结束状态与最近关键帧之间的属性值由浏览器自动线性插值。套到本挑战的具体数值上时间点leftopacity视觉状态0%起点20%元素静态值1元素静态值完全不透明停在视口左侧0% → 50%20% → 60% 插值1 → 0.1 插值向右移动且逐渐淡出50%中点60%显式声明0.1显式声明到达右侧几乎透明50% → 100%60% → 20% 插值0.1 → 1 插值返回起点并重新变实也就是说fade淡出这个动画名恰好名副其实left负责去opacity负责渐隐两者在同一段 0%→50% 区间内同步插值共同构成了从左向右淡出的视觉方向。动画属性的关联animation-name 与 keyframes 的衔接机制本挑战中animation-name: fade与keyframes fade的对应关系是整个动画系统的工作入口。按同 block 的入门课 Learn How the CSS keyframes and animation Properties Workanimation-name设置动画的名字供keyframes告知 CSS 哪些规则属于哪个动画animation-duration设置动画的持续时间keyframes用 0% 到 100% 的百分比帧精确描述动画过程中每帧的样式就像一部电影0% 是开场画面100% 是片尾字幕前的画面CSS 负责在给定时长内完成中间的过渡。该课给出的最小示例与本课结构一致#anim { animation-name: colorful; animation-duration: 3s; } keyframes colorful { 0% { background-color: blue; } 100% { background-color: yellow; } }把示例中的background-color换成left和opacity、把名字换成fade就得到了本课的骨架。该文档还强调You arent limited to only beginning-end transitions, you can set properties for the element for any percentage between 0% and 100%.——本课只用一个50%中间帧正是任意百分比帧用法的直接体现。在课程体系中定位本挑战本挑战id587d78a7367417b2b2512ae2位于 Applied Visual Design 模块。查看 applied-visual-design.json 的challengeOrder它在动画系列中的前后关系是Learn How the CSS keyframes and animation Properties Work —— 认识animation-name/animation-duration与keyframesUse CSS Animation to Change the Hover State of a Button 与 Modify Fill Mode of an Animation —— 动画的其他属性Create Movement Using CSS Animation —— 用top/left偏移属性制造位移本课的直接前置本课Create Visual Direction by Fading an Element from Left to Right—— 在位移之上叠加opacity渐变Animate Elements Continually Using an Infinite Animation Count —— 引入animation-iteration-count: infinite让本课的来回淡入淡出循环播放其后是变速动画variable rates、animation-timing-function关键字与贝塞尔曲线等进阶主题。该 block 属于 Responsive Web Design 课程superblock 结构见 responsive-web-design.jsonblock 元数据中标注helpCategory为HTML-CSSchallengeOrder中本课排在第 34 位共 44 个挑战处于视觉设计课程从静态样式走向动态表现的过渡位置前半程讲排版、色彩、渐变、定位后半程本课起系统展开 CSS 动画。可验证的自测要点如果你想在自己的环境复现并检验本挑战可以把 seed 代码--seed-contents--段原样粘贴到任意 HTML 文件观察球只左右往返移动但透明度不变的现象再按解答--solutions--段在50%关键帧内加入opacity: 0.1;确认以下行为与课程测试正则一致keyframes fade的50%块内同时存在left: 60%和opacity: 0.1顺序不限3 秒周期内球在 1.5 秒50% 时刻到达视口右侧 60% 处且几乎透明随后淡回并返回起点。课程测试的正则写法keyframes fade\s*?{\s*?50%\s*?{\s*?(?:left:\s*?60%;\s*?opacity:\s*?0?\.1;|opacity:\s*?0?\.1;\s*?left:\s*?60%;)本身就是一份验收清单动画名必须叫fade关键帧必须是50%两条属性必须共存于同一帧块——这也反向说明了 CSS 关键帧动画以帧块为单位组织属性的规则结构。小结这篇 freeCodeCamp 挑战文档虽然只有一行核心改动opacity: 0.1;但它串起了一条完整的知识链position: fixed使偏移属性可动画化 →animation-name/animation-duration建立元素与keyframes的关联 → 中间帧50%用属性插值描述动画过程 →opacity的 0~1 取值控制整体透明度 → 位移与透明度同帧同步变化形成视觉方向。掌握了这个模式后把opacity换成transform、background-color等任意可插值属性或将关键帧数量、animation-iteration-count做进一步变化就能派生出同 block 后续课程中的心跳、变速、贝塞尔曲线等更复杂的动画。【免费下载链接】freeCodeCampfreeCodeCamp.orgs open-source codebase and curriculum. Learn math, programming, and computer science for free.项目地址: https://gitcode.com/GitHub_Trending/fr/freeCodeCamp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/25 2:03:57

2026年MES选型指南:十大品牌盘点与落地避坑清单

2026年了,聊MES选型,还是绕不开那句话:MES不是买一套软件回来,而是给车间请了一位“会实时说话的监工”和一台“从头到尾追数据的账本”。过去一年我陆续参与了三家制造企业的MES选型评审,几乎每个CIO和我见面第一句都…

2026/10/25 2:02:55

数学物理计算题批改:公式识别与步骤给分技术

数学和物理计算题是AI阅卷中技术难度最高的题型之一。不像选择题有唯一答案,计算题需要识别手写公式、理解解题步骤、按评分标准给分。本文拆解这个技术链路。 一、手写公式识别的特殊之处 普通文字OCR识别的是一维线性文本,但数学公式是二维结构。一个分…

2026/10/25 2:02:55

内容运营的终局:从流量生产者到语义资产配置者

【摘要】AI时代决策入口迁移正在重构内容行业的价值体系。这套框架覆盖4类存量内容症状、4步选题约束法、5维质量打分模型、3层结构化标准、3类典型误区,帮助从业者完成从流量执行者到资产经营者的能力升级,实现内容获客成本30%以上的长期下降。核心关键…

2026/10/25 2:02:55

面试问题总结

1.回答输出结果,为什么?Integer i new Integer(100);Integer j new Integer(100);System.out.println(i j);String a "abc";String b "a" "b" "c";System.out.println(a b);String c "abcd"…

2026/10/25 2:02:55

2026年毕业设计相关信息

01 毕业设计学生信息基本信息 学生1 ### 学生2### 学生2 卓老师,想问您今年还有本科毕设名额吗? 我是自动化2023级本科生曾天怀(自34班),之前大二的时候上过您的信号与系统课,想要在您的指导下完成毕设。 在…

2026/10/25 1:57:55

内疚自卑-量子白骨观修炼体系|赵杰|量子白骨观

作者:赵杰清华大学硕士、微美全息云科技(NASDAQ:WIMI)董事长、微算法科技(NASDAQ:MLGO)董事长、育杰奖学金创始人沿用赵杰原创理论体系:爱子量子本体论、观测坍缩效应、四重自我否定量子纠缠、意识高熵自我攻击、意识绝对错误性、现代化量子调心白骨观,融…

2026/10/25 0:02:22

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/25 0:02:23

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/25 0:02:23

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/25 0:02:22

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/25 0:02:23

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/25 0:02:23

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑