Next.js 14.2 页面切换动画:使用 View Transitions API 实现平滑过渡
简介
Next.js 14.2 引入了令人激动的功能 —— 页面切换动画,利用 View Transitions API 实现页面之间的平滑过渡。通过这项功能,开发者可以轻松为自己的应用增添动态效果,提升用户体验。本文将展示如何在 Next.js 中使用这一功能,以及如何自定义和优化页面过渡动画。
1. Next.js 14.2 中的页面切换动画功能

在 Next.js 14.2 中,开发者可以利用 View Transitions API 来为页面之间的导航添加动画效果。此功能实现了 平滑过渡,使得页面切换时不会突兀,而是通过柔和的动画效果呈现给用户。
- 示例:当从首页切换到“关于”页面时,页面之间会通过 交叉渐变(cross-fade)动画进行过渡。这样不仅提升了用户体验,还让应用看起来更加流畅和现代。
2. 如何在 Next.js 中使用 View Transitions API

实现步骤:
-
导入 API:
使用unstable_view_transitionAPI,可以在你的项目中轻松实现视图切换动画。只需从官方 React 包中导入此 API。import { unstable_view_transition } from 'react'; -
包装页面:
将页面组件包装在view transition中,以实现过渡效果。这将自动为页面切换添加默认的 交叉渐变 动画。< ViewTransition > {/* 页面内容 */} < /ViewTransition > -
自定义动画:
你可以通过 CSS 或 JavaScript 自定义动画效果。例如,可以为不同的页面设置不同的过渡效果,或者自定义动画的时长、延迟等。
3. 自定义页面切换动画

在实际开发中,你可能希望自定义过渡效果。例如,你可以设置一个 滑动动画,让页面在切换时从上到下滑入或滑出。
-
CSS 示例:
使用 keyframe 动画,你可以创建不同的过渡效果,例如让页面从透明到完全显示:@keyframes slideIn { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: translateY(0); } }将这个动画应用到页面过渡中,可以增强视觉效果。
4. 多元素动画和状态过渡
你还可以将动画应用于多个元素,例如卡片、列表或其他动态组件。通过 状态更新 和 View Transitions API,可以为元素的增删、排序等操作添加动画效果。
示例:当删除一个卡片时,卡片会平滑地从页面中消失,过渡效果不会影响用户体验。
5. 浏览器支持和性能优化
虽然 View Transitions API 在大多数现代浏览器中得到了支持,但仍然有一些浏览器(如 Firefox)可能存在兼容性问题。为了确保动画效果在不同浏览器中都能流畅运行,可以使用 渐进增强 技术:
- 如果浏览器支持此功能,动画效果会正常显示。
- 如果浏览器不支持,页面将默认跳转,用户不会错过任何内容。
6. 结语:为 Web 开发带来新体验
使用 View Transitions API 和 Next.js 14.2,前端开发者可以轻松实现平滑的页面过渡效果,提升应用的用户体验。无论是简单的页面切换动画,还是复杂的元素过渡,开发者都可以自定义并优化过渡效果,打造更加动感和现代化的 Web 应用。
原文引自YouTube视频:https://www.youtube.com/watch?v=OTP4hhX_xpM