在React中实现好看的动画Framer Motion(案例:滚动进度条)

前言

介绍

Framer Motion 是一个适用于 React 网页开发的动画库,它可以让开发者轻松地在他们的项目中添加复杂和高性能的动画效果。该库提供了一整套针对 React 组件的动画、过渡和手势处理功能,使得通过声明式的 API 来创建动画变得简单直观。

接下来我将带你使用 Framer Motion 实现一个滚动进度条案例,用于实时显示滚动进度。

案例

在React中实现好看的动画Framer Motion(案例:滚动进度条)_第1张图片

基本环境

本案例基于 Vite + React + TypeScript + TailwindCSS 搭建。TailwindCSS 不是必须的,我主要是为了不写 CSS 样式,若想实现和本案例相同的效果,可以安装一下 TailwindCSS。

完整代码

import { motion, useScroll } from "framer-motion";

function App() {
  const { scrollYProgress } = useScroll();

  return (
    <>
      
      
{Array.from({ length: 10 }, (_, index) => (
{index}
))}
); } export default App;

useScroll 也可以传入一些参数,比如,我想监听某个容器的滚动而不是页面的滚动,我们就可以修改为以下代码。

import { useRef } from "react";
import { motion, useScroll } from "framer-motion";

function App() {
  const ref = useRef(null);
  const { scrollYProgress } = useScroll({
    container: ref,
  });

  return (
    <>
      
      
{Array.from({ length: 10 }, (_, index) => (
{index}
))}
); } export default App;

在React中实现好看的动画Framer Motion(案例:滚动进度条)_第2张图片

还有一些其他常用的参数,比如 targetoffset,感兴趣的小伙伴可以去官网了解一下如何使用。

你可能感兴趣的:(React.js,react.js,前端,前端框架,javascript,typescript,TailwindCSS)