栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

反应本机圆变换翻译动画

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

反应本机圆变换翻译动画

你算算

translateX
,并
translate
Y与三角函数功能。

translateX
对应
Math.sin()
,并且
translateY
是对应于
Math.cos()

尽管

react-native animated.interpolate
不支持函数回调,但是您可以将其分为几部分进行模拟(我在
代码示例中选择了50个):

完整代码:

export class App extends Component {    constructor() {        super()        this.animated = new Animated.Value(0);        var range = 1, snapshot = 50, radius = 100;        /// translateX        var inputRange = [], outputRange = [];        for (var i=0; i<=snapshot; ++i) { var value = i/snapshot; var move = Math.sin(value * Math.PI * 2) * radius; inputRange.push(value); outputRange.push(move);        }        this.translateX = this.animated.interpolate({ inputRange, outputRange });        /// translateY        var inputRange = [], outputRange = [];        for (var i=0; i<=snapshot; ++i) { var value = i/snapshot; var move = -Math.cos(value * Math.PI * 2) * radius; inputRange.push(value); outputRange.push(move);        }        this.translateY = this.animated.interpolate({ inputRange, outputRange });    }      animate() {        this.animated.setValue(0)        Animated.timing(this.animated, {          toValue: 1,          duration: 1000,        }).start();      }      render() {        const transform = [{ translateY: this.translateY }, {translateX: this.translateX}];        return (          <View style={styles.container}> <Animated.View style={[{ transform }]}>   <TouchableOpacity style={styles.btn}>     <Text>hallo</Text>   </TouchableOpacity> </Animated.View> <Button title="Test" onPress={() => {    this.animate()    }} />          </View>        );      }    }    // define your styles    const styles = StyleSheet.create({      container: {        flex: 1,        justifyContent: 'center',        alignItems: 'center',        backgroundColor: '#2c3e50',      },      btn: {        backgroundColor: 'red',        justifyContent: 'center',        alignItems: 'center',        width: 50,      }    });


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/660428.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号