framer-motion动画技巧全解析:nextjs-portfolio中variants、useInView与交错入场的完整指南
framer-motion动画技巧全解析nextjs-portfolio中variants、useInView与交错入场的完整指南【免费下载链接】nextjs-portfolioportfolio website in nextjs 13项目地址: https://gitcode.com/gh_mirrors/ne/nextjs-portfolionextjs-portfolio是一个用 Next.js 13 Tailwind CSS 打造的高颜值个人作品集网站。它最大的亮点就是用framer-motion这套 React 动画库让页面拥有了丝滑的缩放入场、滚动触发和卡片交错入场效果。本文带你完整拆解其中 3 个核心技巧variants 动画状态、useInView 视口检测与交错入场Stagger效果零基础也能看懂 快速上手如何安装 framer-motion 动画想在自己的 Next.js 项目里复刻这套动效只需一步npm install framer-motion在 package.json 中可以看到本项目使用的版本是framer-motion^10.16.1。安装完成后把普通标签换成motion提供的组件如motion.div、motion.li动画能力就自动解锁了。 小贴士使用motion组件的文件顶部记得加use client因为动画依赖浏览器环境。 技巧一用 variants 定义可复用的动画状态variants变体是 framer-motion 的核心概念把从哪来、到哪去的动画状态写成一份配置组件只需要切换状态名即可。HeroSection缩放淡入的经典写法在 src/app/components/HeroSection.jsx 中首屏的文字和人物图都用motion.div包裹initial{{ opacity: 0, scale: 0.5 }} animate{{ opacity: 1, scale: 1 }} transition{{ duration: 0.5 }}意思是初始透明且缩小到 50%入场时恢复为完全不透明、正常大小整个过程 0.5 秒——一个轻盈的弹出效果。TabButton切换按钮下的动态下划线更妙的是 src/app/components/TabButton.jsx。这里把 variants 真正用出了状态机的味道const variants { default: { width: 0 }, active: { width: calc(100% - 0.75rem) }, };default状态下下划线宽度为 0看不见切换到active时宽度平滑展开到几乎整行按钮下方那条会生长出来的紫色下划线就这么诞生了 技巧二useInView 让动画只在滚动到视图时播放如果所有元素在页面加载时就动完了用户滚动时反而看不到任何效果。useInView就是解决这个问题的钩子判断元素是否进入浏览器视口。在 src/app/components/ProjectsSection.jsx 中const ref useRef(null); const isInView useInView(ref, { once: true }); // ... ul ref{ref} motion.li animate{isInView ? animate : initial}三个关键点要点说明useRef(null)创建一个引用稍后绑定到ul上useInView(ref, { once: true })监听该元素是否进入视口once: true表示只触发一次避免来回滚动反复播放animate{isInView ? animate : initial}在视口内播放animate状态否则保持initial✨ 技巧三交错入场——让卡片依次排队登场项目列表区域是全文最出彩的动效6 张项目卡片不是同时出现而是像多米诺骨牌一样依次上浮入场。这靠的就是交错延迟Stagger Delay。在 src/app/components/ProjectsSection.jsx 中const cardVariants { initial: { y: 50, opacity: 0 }, // 初始下沉50px且透明 animate: { y: 0, opacity: 1 }, // 入场回到原位并显形 }; // 渲染时 transition{{ duration: 0.3, delay: index * 0.4 }}delay: index * 0.4是灵魂所在第 1 张卡片延迟 0 秒第 2 张延迟 0.4 秒第 3 张延迟 0.8 秒……每张都晚一点出场形成流畅的波浪节奏 framer-motion 动画参数速查表参数作用本项目中的例子opacity透明度0 透明 → 1 不透明淡入淡出scale缩放比例Hero 区 0.5 → 1 放大登场x/y水平 / 垂直位移卡片从下方 50px 处上浮duration动画时长秒0.3s / 0.5sdelay延迟启动秒交错入场的关键width宽度Tab 下划线生长效果 新手常见问题Qvariants 和直接写initial/animate有什么区别A直接写适合一次性动画variants 把状态命名成对象方便在多个animate值之间切换如 TabButton 的active/default也便于父组件统一编排子动画。Q为什么useInView要加once: trueA不加的话每次滚出再滚回视口都会重播动画容易让用户感到页面在抽搐加once: true后只播一次体验更从容。Q交错延迟设多大合适A经验值是 0.1s ~ 0.5s 起步。延迟太大如每张 1s 以上后面的卡片要等很久才出现太小则交错感不明显。✅ 总结nextjs-portfolio 用不到 10 行核心动画代码就为静态页面注入了生命力variants—— 把动画状态写成可复用的配置Hero 缩放入场与 Tab 下划线都靠它useInView—— 滚动到哪儿、动画播到哪儿once: true避免重复触发交错入场——delay: index * 0.4一行代码让项目卡片依次排队登场。照着这三个技巧你的下一个 Next.js 项目也能拥有同样高级的动效 ✨【免费下载链接】nextjs-portfolioportfolio website in nextjs 13项目地址: https://gitcode.com/gh_mirrors/ne/nextjs-portfolio创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

uniapp安卓云打包核心指南:manifest配置、签名规范与构建避坑

uniapp安卓云打包核心指南:manifest配置、签名规范与构建避坑

1. 为什么“云打包”不是偷懒捷径,而是安卓分发绕不开的现实选择uniapp开发者一提到“APP项目云打包(安卓)”,脑子里常浮现两种画面:一种是刚学完API、信心满满想真机调试的同学,对着HBuilderX里那个灰掉的…

2026/8/26 12:15:03 阅读更多 →
从行为痕迹到能力进化:WSaiOS-ICAI经验系统的认知架构与工程实现

从行为痕迹到能力进化:WSaiOS-ICAI经验系统的认知架构与工程实现

从行为痕迹到能力进化:WSaiOS-ICAI经验系统的认知架构与工程实现摘要:在人工智能从工具性存在向个体化存在演进的范式转换中,如何使人工系统具备从自身行为结果中持续学习并优化决策能力,构成了智能体架构设计的核心挑战。本文基于…

2026/8/26 15:59:02 阅读更多 →
2026大模型面试宝典:从原理到实战

2026大模型面试宝典:从原理到实战

1. 为什么需要一份大模型面试宝典?2026年的技术招聘市场已经发生了翻天覆地的变化。根据最新的行业调研数据显示,超过87%的科技公司在招聘算法工程师、AI研发等岗位时,都会考察候选人对大模型的理解和应用能力。但现实情况是,大多…

2026/8/26 13:45:00 阅读更多 →

最新新闻

抖助手第065个开关:启用首页全屏的位置、验证方法与安全区边界

抖助手第065个开关:启用首页全屏的位置、验证方法与安全区边界

🔥 个人主页: 杨利杰YJlio ❄️ 个人专栏: 《Windows 疑难杂症与工单复盘案例库》 《Sysinternals实战教程》 《WINDOWS教程》 《Windows PowerShell 实战》 《IOS插件分析测试》 《超简单:用Python让Excel飞起来》…

2026/8/26 17:38:09 阅读更多 →
抖助手第066个开关:隐藏全屏观看的位置、验证方法与入口边界

抖助手第066个开关:隐藏全屏观看的位置、验证方法与入口边界

🔥 个人主页: 杨利杰YJlio ❄️ 个人专栏: 《Windows 疑难杂症与工单复盘案例库》 《Sysinternals实战教程》 《WINDOWS教程》 《Windows PowerShell 实战》 《IOS插件分析测试》 《超简单:用Python让Excel飞起来》…

2026/8/26 17:38:09 阅读更多 →
can总线相关

can总线相关

CAN 总线是一种基于“差分信号”和“多主竞争”的串行通信协议,具备极强的抗干扰能力和完善的错误处理机制,广泛应用于汽车电子、工业控制、医疗设备等对可靠性要求极高的场景。高速can总线结构can收发器:负责把MCU输出的逻辑电平转换成总线上…

2026/8/26 17:38:09 阅读更多 →
车载座舱术语简释

车载座舱术语简释

CAN:Controller Area Network,控制器局域网,车载主流串行通信总线,用于各电控单元数据交互。IPC:Instrument Panel Cluster,仪表总成(液晶仪表盘),负责车速、告警、行车信…

2026/8/26 17:38:09 阅读更多 →
抖助手第079个开关:隐藏头像列表的位置、验证方法与社交信息边界

抖助手第079个开关:隐藏头像列表的位置、验证方法与社交信息边界

🔥 个人主页: 杨利杰YJlio ❄️ 个人专栏: 《Windows 疑难杂症与工单复盘案例库》 《Sysinternals实战教程》 《WINDOWS教程》 《Windows PowerShell 实战》 《IOS插件分析测试》 《超简单:用Python让Excel飞起来》…

2026/8/26 17:38:09 阅读更多 →
Go-Channel底层结构深度解析与select多路复用机制

Go-Channel底层结构深度解析与select多路复用机制

Go Channel底层结构深度解析与select多路复用机制 文章导语 Channel是Go并发编程的灵魂——“不要通过共享内存来通信,而要通过通信来共享内存”。但Channel的底层实现远比表面复杂:环形缓冲区、等待队列、goroutine的阻塞/唤醒、select的随机性……本文…

2026/8/26 17:37:09 阅读更多 →

日新闻

Python random 模块常用函数详解:从入门到实战

Python random 模块常用函数详解:从入门到实战

目录 1. 引言2. 准备工作3. 基础随机函数4. 序列相关函数5. 随机种子与复现6. 实战案例7. 注意事项8. 常见问题与排查9. 总结 1. 引言 摘要: 本文系统介绍 Python 标准库 random 模块中最常用的随机数生成函数。内容涵盖基础随机函数(random()、unifor…

2026/8/26 0:00:40 阅读更多 →
《Microsoft Sql server 2008 Internals》读书笔记--第三章Databases and Database Files(2)

《Microsoft Sql server 2008 Internals》读书笔记--第三章Databases and Database Files(2)

《Microsoft Sql server 2008 Internals》索引目录: 《Microsoft Sql server 2008 Internals》读书笔记--目录索引 在上篇文章中,主要介绍了创建数据库的基本语法和FileGroup的初步知识。需要注意的是: 关于FileGroup 如果你的系统是用Raid设备直接存…

2026/8/26 1:18:18 阅读更多 →
政务AI智能体怎么建?三种模式、三步路径与四个误区

政务AI智能体怎么建?三种模式、三步路径与四个误区

政务AI智能体已经从概念试点阶段,转入了政务服务的常态化落地应用;在实际使用过程中,它能自主理解办事需求、辅助完成填报申报、开展材料预审,并联动多个系统协同作业,真正嵌入到政务办理的全流程当中。但在落地推进过…

2026/8/26 1:18:18 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/26 14:45:33 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/25 3:38:18 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/26 14:46:37 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/26 3:50:20 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/25 10:31:12 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/26 1:24:05 阅读更多 →