全部组件

MotionPresence

在进场和离场动画期间保持内容挂载。

WebReact Native内容与尺寸

动手试试

正在准备示例…

最简用法

Notice.jsx
<MotionPresence present={visible} exit={{ opacity: 0, translateY: -12 }}>
  Draft saved
</MotionPresence>;

它替你处理的事

  • 改变 present 而不是卸载;内容会先离场再被移除。
  • 离场途中恢复显示,会从当前值继续。
  • 再次出现的内容从 exit 姿态进场。
  • 首次渲染时直接显示静止状态,已有的内容不会闪烁。

适用场景

  • 草稿已保存的提示。
  • 结账页的优惠券消息。
  • 输入框下方的错误信息。

Props

Prop类型默认值说明
presentboolean—必需显示或隐藏内容。用它代替卸载。
enterPose{ opacity: 1, translateY: 0 }静止时的姿态。
exitPose{ opacity: 0, translateY: -12 }内容离场以及进场时使用的姿态。
aselement'div'要渲染的元素。
transitionTransitionspring时间曲线 { duration, easing } 或弹簧 { tempo: 'spring', spring }。弹簧被打断时会保留动量。
onExitComplete() => void内容离场并被移除后运行。

其他 props 会传给渲染的元素,所以 className、style 和事件处理函数照常可用。

Web 与 React Native

姿态可使用 opacity、translateX、translateY、scale、scaleX、scaleY、rotate、width 和 height。onExitComplete 在内容离场后运行。

同样的姿态和 props 在 React Native 上也能用。

用到它的示例

搜索

输入关键词搜索文档。