文档

文档

React

布局相机

布局相机

已弃用

已弃用

LayoutCameraLayoutOrthographicCamera 允许我们将 React Three Fiber 场景融入 Motion 的布局动画中.

用法

Motion 的布局动画中工作原理是通过 transform 样式。通过 transform 动画 widthheight 的缺点是图像可能会失真。

当将 React Three Fiber 场景融入布局动画时,我们可以使用 Motion 的 LayoutCameraLayoutOrthographicCamera 组件来预先扭曲 3D 场景,这样当 CSS transform 应用于宿主 canvas 元素时,在整个动画过程中看起来都是正确的。

要实现相机,我们首先需要将 @react-three/fiber 中的 Canvas 替换为这个MotionCanvas组件。然后,可以将相机组件添加到场景中的任何位置

import { MotionCanvas, LayoutCamera } from "framer-motion"

function Scene() {
  <MotionCanvas>
    <LayoutCamera />
    <Box />
  </MotionCanvas>
}

LayoutCamera 提供了一个正常的透视相机

LayoutOrthographicCamera 提供了一个正交视图

属性

在内部,LayoutCamera 渲染一个 <motion.perspectiveCamera />,而 LayoutOrthographicCamera 渲染一个 <motion.orthographicCamera /> 组件,因此它们可以接受所有常见的 React Three Fiber 属性,如 positionzoom,以及 motion 属性,如 initialanimate

<LayoutCamera
  position={[0, 0, 5]}
  zoom={20}
  animate={{ zoom: 100 }}
  transition={{ duration: 2 }}
/>

LayoutCameraLayoutOrthographicCamera 允许我们将 React Three Fiber 场景融入 Motion 的布局动画中.

用法

Motion 的布局动画中工作原理是通过 transform 样式。通过 transform 动画 widthheight 的缺点是图像可能会失真。

当将 React Three Fiber 场景融入布局动画时,我们可以使用 Motion 的 LayoutCameraLayoutOrthographicCamera 组件来预先扭曲 3D 场景,这样当 CSS transform 应用于宿主 canvas 元素时,在整个动画过程中看起来都是正确的。

要实现相机,我们首先需要将 @react-three/fiber 中的 Canvas 替换为这个MotionCanvas组件。然后,可以将相机组件添加到场景中的任何位置

import { MotionCanvas, LayoutCamera } from "framer-motion"

function Scene() {
  <MotionCanvas>
    <LayoutCamera />
    <Box />
  </MotionCanvas>
}

LayoutCamera 提供了一个正常的透视相机

LayoutOrthographicCamera 提供了一个正交视图

属性

在内部,LayoutCamera 渲染一个 <motion.perspectiveCamera />,而 LayoutOrthographicCamera 渲染一个 <motion.orthographicCamera /> 组件,因此它们可以接受所有常见的 React Three Fiber 属性,如 positionzoom,以及 motion 属性,如 initialanimate

<LayoutCamera
  position={[0, 0, 5]}
  zoom={20}
  animate={{ zoom: 100 }}
  transition={{ duration: 2 }}
/>

LayoutCameraLayoutOrthographicCamera 允许我们将 React Three Fiber 场景融入 Motion 的布局动画中.

用法

Motion 的布局动画中工作原理是通过 transform 样式。通过 transform 动画 widthheight 的缺点是图像可能会失真。

当将 React Three Fiber 场景融入布局动画时,我们可以使用 Motion 的 LayoutCameraLayoutOrthographicCamera 组件来预先扭曲 3D 场景,这样当 CSS transform 应用于宿主 canvas 元素时,在整个动画过程中看起来都是正确的。

要实现相机,我们首先需要将 @react-three/fiber 中的 Canvas 替换为这个MotionCanvas组件。然后,可以将相机组件添加到场景中的任何位置

import { MotionCanvas, LayoutCamera } from "framer-motion"

function Scene() {
  <MotionCanvas>
    <LayoutCamera />
    <Box />
  </MotionCanvas>
}

LayoutCamera 提供了一个正常的透视相机

LayoutOrthographicCamera 提供了一个正交视图

属性

在内部,LayoutCamera 渲染一个 <motion.perspectiveCamera />,而 LayoutOrthographicCamera 渲染一个 <motion.orthographicCamera /> 组件,因此它们可以接受所有常见的 React Three Fiber 属性,如 positionzoom,以及 motion 属性,如 initialanimate

<LayoutCamera
  position={[0, 0, 5]}
  zoom={20}
  animate={{ zoom: 100 }}
  transition={{ duration: 2 }}
/>
保持关注

订阅以获取最新新闻和更新。

保持关注

订阅以获取最新新闻和更新。