反应本机 panResponder 动画
React native panResponder Animation
我有一个 lottie 组件,每次滑动屏幕时它都应该 运行 有一个新的动画值。现在,当从左向右滑动时,它会将动画值增加到 0.3,如果向相反方向滑动,则减少到 0。
我想做的是,当你再次滑动屏幕时,值应该变成 0.6。第三次滑动 0.9。
你能告诉我怎么做吗?
onPanResponderMove: (evt, gesture) => {
const { dx } = gesture;
if (dx > 30) {
Animated.timing(this.state.scrollX, {
toValue: 0.3,
duration: 500,
}).start();
} else {
Animated.timing(this.state.scrollX, {
toValue: 0,
}).start();
}
}
render(){
return(
<View>
<LottieView
style={styles.lottie}
source={require('../../assets/lottie/auth_animation.json')}
progress={this.state.scrollX}
/>
</View>
)
}
将 toValue 的值存储在 onPanResponderMove 函数之外。在每次滑动时将其增加 0.3 以用于下一次滑动。
toValue = 0;
onPanResponderMove: (evt, gesture) => {
const { dx } = gesture;
if (dx > 30) {
toValue += 0.3;
Animated.timing(this.state.scrollX, {
toValue,
duration: 500,
}).start();
} else {
Animated.timing(this.state.scrollX, {
toValue: 0,
}).start();
}
}
我有一个 lottie 组件,每次滑动屏幕时它都应该 运行 有一个新的动画值。现在,当从左向右滑动时,它会将动画值增加到 0.3,如果向相反方向滑动,则减少到 0。
我想做的是,当你再次滑动屏幕时,值应该变成 0.6。第三次滑动 0.9。
你能告诉我怎么做吗?
onPanResponderMove: (evt, gesture) => {
const { dx } = gesture;
if (dx > 30) {
Animated.timing(this.state.scrollX, {
toValue: 0.3,
duration: 500,
}).start();
} else {
Animated.timing(this.state.scrollX, {
toValue: 0,
}).start();
}
}
render(){
return(
<View>
<LottieView
style={styles.lottie}
source={require('../../assets/lottie/auth_animation.json')}
progress={this.state.scrollX}
/>
</View>
)
}
将 toValue 的值存储在 onPanResponderMove 函数之外。在每次滑动时将其增加 0.3 以用于下一次滑动。
toValue = 0;
onPanResponderMove: (evt, gesture) => {
const { dx } = gesture;
if (dx > 30) {
toValue += 0.3;
Animated.timing(this.state.scrollX, {
toValue,
duration: 500,
}).start();
} else {
Animated.timing(this.state.scrollX, {
toValue: 0,
}).start();
}
}