所有元件

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 上也能用。

用到它的範例

搜尋

輸入關鍵字搜尋文件。