发布于 2026-01-06 3 阅读
0

无需 CSS 的 CSS 动画 - 纯 JS 和 React 中的 AOS DEV's Worldwide Show and Tell Challenge Presented by Mux: Pitch Your Projects!

无需 CSS 的 CSS 动画 - 纯 JS 和 React 实现 AOS

由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!

“CSS 很美,但很难”

大多数开发者都会同意这种说法。事实上,很多后端开发者正是因为前端的难度而放弃了前端开发。CSS动画是CSS中最难的部分之一。不过,好消息是,情况已经有所好转。

开发者们一直在开发各种库,帮助我们避免编写过多不必要的 CSS 代码。这太棒了!!!

在本文中,我将向您介绍其中一个库,它叫做AOS(Animation on Scroll,滚动动画)

AOS 是GitHub上的一个免费库,它不仅可以帮助你为网站添加动画效果,还可以确保动画仅在你滚动到网站的相应部分时才会发生。

无需赘言,让我们直接进入实践环节。我将演示如何在 React 和纯 JavaScript 项目中使用它。

纯 JavaScript

入门项目

点击此处获取 React 入门项目

设置和初始化

  • 将以下 CSS 链接添加到 head 标签中。index.html
<link href="https://unpkg.com/aos@2.3.1/dist/aos.css" rel="stylesheet">
Enter fullscreen mode Exit fullscreen mode
  • 在结束的 body 标签之前添加以下脚本
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
Enter fullscreen mode Exit fullscreen mode
  • scripts.js文件中,添加以下代码以初始化 AOS
AOS.init();
Enter fullscreen mode Exit fullscreen mode

导航动画

添加data-aos="fade-right"以下nav代码,使其从右侧淡入:

<!-- nav -->
    <nav class="navbar navbar-default" data-aos="fade-right">
      <div class="navbar-header">
        <h1>Navigation</h1>
      </div>
    </nav>
Enter fullscreen mode Exit fullscreen mode

您可以在浏览器中查看。

AOS 还提供了其他选项,例如普通的 CSS 动画。所以,让我们优化一下动画流程,稍微减慢一下速度。nav现在看起来是这样的。

<!-- nav -->
    <nav
      class="navbar navbar-default"
      data-aos="fade-right"
      data-aos-delay="50"
      data-aos-duration="1000"
      data-aos-easing="ease-in-out-cubic"
    >
      <div class="navbar-header">
        <h1>Navigation</h1>
      </div>
    </nav>
Enter fullscreen mode Exit fullscreen mode

你看,nav动画更流畅了吗?这就是它的魅力所在!

现在你明白了吧。按照你想要的方式为网页的其他部分添加动画效果。

最终的纯 JavaScript 代码

React

入门项目

点击此处获取 React 入门项目

设置和初始化

  • 使用以下代码安装 AOS
npm install aos --save
Enter fullscreen mode Exit fullscreen mode
  • App.js使用以下代码在文件中导入并初始化 AOS
import AOS from "aos";
import "aos/dist/aos.css";
AOS.init();
Enter fullscreen mode Exit fullscreen mode

导航动画

data-aos="flip-left"在该部分添加nav以下内容,使其向左翻转:

<!-- nav -->
    <nav className="navbar navbar-default" data-aos="flip-left">
        <div className="navbar-header">
          <h1>Navigation</h1>
        </div>
      </nav>
Enter fullscreen mode Exit fullscreen mode

您可以在浏览器中查看。

AOS 还提供了其他选项,例如普通的 CSS 动画。所以,让我们优化一下动画流程,稍微减慢一下速度。nav现在看起来是这样的。

<!-- nav -->
    <nav
        className="navbar navbar-default"
        data-aos="flip-left"
        data-aos-delay="50"
        data-aos-duration="2000"
        data-aos-easing="ease-in-out-cubic"
      >
        <div className="navbar-header">
          <h1>Navigation</h1>
        </div>
      </nav>
Enter fullscreen mode Exit fullscreen mode

你看,nav动画更流畅了吗?这就是它的魅力所在!

现在你明白了吧。按照你想要的方式为网页的其他部分添加动画效果。

最终 React 代码

结论

AOS有很多功能,我鼓励你多尝试,看看能得到什么结果。

如果您有任何问题或意见,请在评论区留言。下次见。

文章来源:https://dev.to/ebereplenty/css-animation-without-css-aos-in-plain-js-and-react-4jfj