Javascript 如何使用动画宽度制作矩形
我是个新来的本地人。我需要创建一个自定义滑块,我认为它可以与动画。你能解释一下如何制作这个动画吗Javascript 如何使用动画宽度制作矩形,javascript,reactjs,react-native,animation,react-animated,Javascript,Reactjs,React Native,Animation,React Animated,我是个新来的本地人。我需要创建一个自定义滑块,我认为它可以与动画。你能解释一下如何制作这个动画吗 我已经为此制作了一个演示 import * as React from 'react'; import { Text, View, Animated } from 'react-native'; import GestureRecognizer, {swipeDirections} from 'react-native-swipe-gestures'; export default class A
我已经为此制作了一个演示
import * as React from 'react';
import { Text, View, Animated } from 'react-native';
import GestureRecognizer, {swipeDirections} from 'react-native-swipe-gestures';
export default class App extends React.Component {
state = {
widthAnim: new Animated.Value(0)
}
maxWidthAnimate = () => {
Animated.timing(this.state.widthAnim , {
toValue: 1,
duration: 2000
});
}
minWidthAnimate = () => {
Animated.timing(this.state.widthAnim , {
toValue: 0,
duration: 2000
});
}
render() {
const width = this.state.widthAnim.interpolate(
{
inputRange: [0, 0.5, 1],
outputRange: [50, 200, 50]
}
);
return (
<View>
<GestureRecognizer
onSwipeLeft={this.minWidthAnimate}
onSwipeRight={this.maxWidthAnimate}
>
<Animated.View style={{width: width, height: 100, backgroundColor: "blue", borderBottomRightRadius: 100, borderTopRightRadius: 100}}>
</Animated.View>
</GestureRecognizer>
</View>
);
}
}
import*as React from'React';
从“react native”导入{文本、视图、动画};
从“反应本机滑动手势”导入手势识别器,{SwipDirections};
导出默认类App扩展React.Component{
状态={
widthAnim:新动画。值(0)
}
maxWidthAnimate=()=>{
动画。计时(this.state.widthAnim{
toValue:1,
持续时间:2000年
});
}
minWidthAnimate=()=>{
动画。计时(this.state.widthAnim{
toValue:0,
持续时间:2000年
});
}
render(){
常量宽度=this.state.widthAnim.interpolate(
{
输入范围:[0,0.5,1],
输出范围:[5020050]
}
);
返回(
我已经为此制作了一个演示
import * as React from 'react';
import { Text, View, Animated } from 'react-native';
import GestureRecognizer, {swipeDirections} from 'react-native-swipe-gestures';
export default class App extends React.Component {
state = {
widthAnim: new Animated.Value(0)
}
maxWidthAnimate = () => {
Animated.timing(this.state.widthAnim , {
toValue: 1,
duration: 2000
});
}
minWidthAnimate = () => {
Animated.timing(this.state.widthAnim , {
toValue: 0,
duration: 2000
});
}
render() {
const width = this.state.widthAnim.interpolate(
{
inputRange: [0, 0.5, 1],
outputRange: [50, 200, 50]
}
);
return (
<View>
<GestureRecognizer
onSwipeLeft={this.minWidthAnimate}
onSwipeRight={this.maxWidthAnimate}
>
<Animated.View style={{width: width, height: 100, backgroundColor: "blue", borderBottomRightRadius: 100, borderTopRightRadius: 100}}>
</Animated.View>
</GestureRecognizer>
</View>
);
}
}
import*as React from'React';
从“react native”导入{文本、视图、动画};
从“反应本机滑动手势”导入手势识别器,{SwipDirections};
导出默认类App扩展React.Component{
状态={
widthAnim:新动画。值(0)
}
maxWidthAnimate=()=>{
动画。计时(this.state.widthAnim{
toValue:1,
持续时间:2000年
});
}
minWidthAnimate=()=>{
动画。计时(this.state.widthAnim{
toValue:0,
持续时间:2000年
});
}
render(){
常量宽度=this.state.widthAnim.interpolate(
{
输入范围:[0,0.5,1],
输出范围:[5020050]
}
);
返回(
是在拖动事件期间还是在用户按下事件之后执行的动画?@CowCray是在拖动事件期间执行的动画在这种情况下,假设您希望它尽可能原生,请查看是否还不够检查。这两个动画都来自同一作者,并且可以很好地协同工作。遗憾的是,react native的动画
api不可用t为您想要实现的目标做好准备。@CowCray是否可以更改滑块标准反应本机组件的样式,并使其与我的示例类似?样式您是指Zibra线或滑块的X偏移量?动画是在拖动事件期间还是在用户按下事件之后执行的?@CowCray动画是在拖动事件期间执行的在本例中为假设你想让它尽可能的原生,那么看看是否还不够。这两个都来自同一个作者,并且合作得很好。遗憾的是,react-native的动画的api还没有为你想要实现的目标做好准备。@CowCray有可能改变Slider标准react-native组件的样式并使其与我的一样吗ple?Style你是指Zibra线条或滑块的X偏移?谢谢。看起来像我想要的,但如何在控制手指(如滑块)的同时运行动画?这几乎是我需要的,但有一个问题。是否可以将值设置在最小值和最大值之间?例如,取并拖动,直到值达到最大值或某个值(值从0到10,在8停止)。您可以看到一个示例,谢谢。看起来像我想要的,但如何在控制手指的同时运行动画(像一个滑块)?这几乎是我需要的,但有一个问题。是否可以将值设置在最小值和最大值之间?例如,取并拖动,直到值达到最大值或某个值(值从0到10,停止在8)。您可以看到一个示例