oblador / react-native-animatable

Standard set of easy to use animations and declarative transitions for React Native
MIT License
9.82k stars 701 forks source link

How to start slideInDown from specific point #159

Open yasir-netlinks opened 6 years ago

yasir-netlinks commented 6 years ago

I have a modal-like view, and I want to show a view when button clicked, is it possible to slideInDown from specific point in the view rather than sliding from the Top of the screen. and if not, what's the best way to achieve this, thanx

kristerkari commented 6 years ago

I would also need this feature.

I'm not familiar of the implementation details of this library, but I guess that the main issue is that React Native does not support setting transform-origin yet.

So, in CSS you can do this to change the starting point of the transition, e.g. center:

transform-origin: 50% 50%;

But as that's not available in RN, there would need to be some kind of custom implementation to support any kind of way of using transform-origin that in this library.

People have been requesting the support for React Native, but one of the issues have been that they haven't been able to implemented it in a way that is compatible with the CSS spec.

Some links:

/cc @oblador

keithics commented 6 years ago

use transition

    <Animatable.View transition="top"  style={{position:'absolute',top:this.state.resultView || 320>
        <Text>testing</Text>
    </Animatable.View>  

simply change the state onPress event etc..

nathantqn commented 5 years ago

You customize the animation and define it as, for example:

const mySlideInDown = { from: { translateY: 30, }, to: { translateY: 0, }, }

Animatable.initializeRegistryWithDefinitions({ mySlideInDown, })

Then in component use: ` <Animatable.View iterationCount="infinite" direction="alternate" animation="mySlideInDown"

</Animatable.View>`

vijay-tiwari-wavemaker commented 8 months ago

React Native v0.73 supports Transform Origin. Seems like this issue might get fixed after upgrading to RN v0.73 /cc @oblador