animated提供了兩種型別的值:
1.animated.value()用於單個值
2.animated.valuexy()用於向量值
animated.value
可以繫結到樣式或是其他屬性上,也可以進行插值運算。單個animated.value
可以用在任意多個屬性上.
目前animated提供的動畫元件有view,image,text,scrollview;當然我們也可以使用createanimatedcomponent方法來建立自己的動畫元件。
static createanimatedcomponent(component: any)
使得任何乙個react元件支援動畫。用它來建立animated.view等等。
目前animated提供了三種動畫:每種動畫型別都提供了特定的函式曲線,用於控制動畫值從初始值變化到最終值的變化過程:
1.animated.decay()
以指定的初始速度開始變化,然後變化速度越來越慢直至停下。
static decay(value: animatedvalue | animatedvaluexy, config: decayanimationconfig)
推動乙個值以乙個初始的速度和乙個衰減係數逐漸變為0。
config引數有以下這些屬性:
velocity: 初始速度。必填。
deceleration: 衰減係數。預設值0.997。
usenativedriver: 使用原生動畫驅動。預設不啟用(false)。
2.animated.spring()彈性動畫
static spring(value: animatedvalue | animatedvaluexy, config: springanimationconfig)
產生乙個基於rebound和origami實現的spring動畫。它會在tovalue值更新的同時跟蹤當前的速度狀態,以確保動畫連貫。可以鏈式呼叫。
config引數有以下這些屬性(注意你不能同時定義bounciness/speed和 tension/friction這兩組,只能指定其中一組):
friction: controls "bounciness"/overshoot. default 7.
tension: controls speed. default 40.
speed: controls speed of the animation. default 12.
bounciness: controls bounciness. default 8.
usenativedriver: 使用原生動畫驅動。預設不啟用(false)。
3.animated.timing()
依賴時間的動畫
static timing(value: animatedvalue | animatedvaluexy, config: timinganimationconfig)
推動乙個值按照乙個過渡曲線而隨時間變化。easing模組定義了一大堆曲線,你也可以使用你自己的函式。
config引數有以下這些屬性:
duration: 動畫的持續時間(毫秒)。預設值為500.
easing: easing function to define curve。預設值為easing.inout(easing.ease).
delay: 開始動畫前的延遲時間(毫秒)。預設為0.
usenativedriver: 使用原生動畫驅動。預設不啟用(false)。
大多數情況下應該使用timing(),動畫預設值
easeinout。
使用樣例:
constructor(props)
}
1.常在state中設定乙個動畫初始值
2.在componentdidmount或者其他邏輯處理中開始動畫
componentwillreceiveprops(nextprops,nextstate) ).start(()=>);*/
animated.timing(this.state.bottom,).start(()=>);
}else )
}}
rn動畫還可以以組合函式方式進行:
animated.delay()
在給定延遲後開始動畫。
static delay(time: number) #
在指定的延遲之後開始動畫。
animated.parallel()
同時啟動多個動畫。
static parallel(animations: array, config?: parallelconfig) #
同時開始乙個動畫陣列裡的全部動畫。預設情況下,如果有任何乙個動畫停止了,其餘的也會被停止。你可以通過stoptogether選項來改變這個效果。
animated.sequence()
按順序啟動動畫,等待每乙個動畫完成後再開始下乙個動畫
static sequence(animations: array) #
按順序執行乙個動畫陣列裡的動畫,等待乙個完成後再執行下乙個。如果當前的動畫被中止,後面的動畫則不會繼續執行。
animated.stagger()
按照給定的延時間隔,順序並行的啟動動畫。
static stagger(time: number, animations: array) #
乙個動畫陣列,裡面的動畫有可能會同時執行(重疊),不過會以指定的延遲來開始。用來製作拖尾效果非常合適。
react native 金幣彩帶雨下落動畫
安裝yarn add react native animatable庫 主要用到的動畫是移動下落,即translatey,從螢幕頂部下落至底部,同時過程中可以左右搖擺,每次隨機下落。failanimation usenativedriver swinganimation 主要用到的動畫,動畫是可以相...
react native 金幣彩帶雨下落動畫
安裝yarn add react native animatable庫 主要用到的動畫是移動下落,即translatey,從螢幕頂部下落至底部,同時過程中可以左右搖擺,每次隨機下落。failanimation usenativedriver swinganimation 主要用到的動畫,動畫是可以相...
React Native 之布局篇
一.flex布局 什麼是flex布局?布局的傳統解決方案,是基於盒子模型,依賴display屬性 position屬性 float屬性,這種布局方式對於特殊布局非常不方便,比如,垂直居中就不好實現.2009年,w3c提出的flex布局,即彈性布局,用來為盒子模型提供最大的靈活性,任何乙個容器都可以指...