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

初学者如何用CSS实现滚动动画_CSS scroll-behavior与keyframes结合

P粉602998670
发布: 2025-10-30 20:35:01
原创
431人浏览过
掌握滚动动画需理解:1. scroll-behavior: smooth 实现页面平滑滚动;2. @keyframes 定义元素进入动画如淡入上浮;3. 结合 Intersection Observer API 在元素可见时触发动画;4. 实际应用中控制动画时长0.5-0.8秒,避免复杂效果影响性能。

初学者如何用css实现滚动动画_css scroll-behavior与keyframes结合

实现滚动动画对初学者来说并不难,关键是理解两个核心:CSS 的 scroll-behavior 控制页面滚动方式,而 @keyframes 则用于创建视觉上的动画效果。两者结合可以做出流畅的页面滚动与元素动态展示。

1. 使用 scroll-behavior 实现平滑滚动

想要让页面内锚点跳转变得顺滑,不需要 JavaScript,只需在根元素或 html 上设置 scroll-behavior: smooth

示例:
html {
  scroll-behavior: smooth;
}
登录后复制

然后设置导航链接指向页面中的某个 ID:

<a href="#section2">跳转到第二节</a>
<section id="section2"></section>
登录后复制

点击链接时,页面会自动以平滑方式滚动到目标位置,而不是瞬间跳转。

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

2. 用 @keyframes 创建进入动画

scroll-behavior 只控制滚动行为,要让元素在滚动过程中“动起来”,需要用 @keyframes 定义动画,比如淡入、上浮等效果。

常见做法:
  • 初始状态(opacity: 0, transform: translateY(20px))
  • 滚动到可视区域后变为完全显示(opacity: 1, transform: translateY(0))
  • 通过 transition 或 animation 应用过渡

示例动画定义:

啵啵动漫
啵啵动漫

一键生成动漫视频,小白也能轻松做动漫。

啵啵动漫123
查看详情 啵啵动漫
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
<p>.animated-section {
animation: fadeInUp 0.6s ease-out forwards;
}
登录后复制

3. 结合 Intersection Observer 触发动画

CSS 本身无法判断“滚动到某位置才开始动画”,所以需要一点点 JavaScript 来监听元素是否进入视口。

基本思路:
  • 给需要动画的元素添加类名,如 .animate-on-scroll
  • 页面滚动时,检测这些元素是否出现在视野中
  • 一旦出现,就加上 .animated 类触发 @keyframes 动画

JavaScript 示例:

const observer = new IntersectionObserver((entries) => {
  entries.forEach(entry => {
    if (entry.isIntersecting) {
      entry.target.classList.add('animated');
    }
  });
});
<p>document.querySelectorAll('.animate-on-scroll').forEach(el => {
observer.observe(el);
});
登录后复制

CSS 配合:

.animate-on-scroll {
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.6s ease-out;
}
<p>.animate-on-scroll.animated {
opacity: 1;
transform: translateY(0);
}
登录后复制

4. 实际应用建议

初学者可以从简单项目入手,比如个人主页的章节展示。把每个 section 设为带动画的块,配合平滑滚动导航,体验立刻提升。

小技巧:
  • 动画时间控制在 0.5s - 0.8s 之间,太长会让人感觉卡顿
  • 延迟出场可以用 animation-delay 分批展示内容
  • 避免在移动端使用过于复杂的动画,影响性能

基本上就这些。掌握 scroll-behavior 和 keyframes 的分工:一个管“怎么滚”,一个管“怎么动”,再用 JS 判断“什么时候动”,就能做出专业级的滚动动画效果。

以上就是初学者如何用CSS实现滚动动画_CSS scroll-behavior与keyframes结合的详细内容,更多请关注php中文网其它相关文章!

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

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

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

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