Inertia 惯性
这是当你拖动一个Frame元素并且释放的时候会产生的动画效果。这个减速的动画效果是基于元素初始的速度的。min,max这个两个边界参数是作为可选项进行设置。如果设置了min和max这个参数,这个动画效果可以产生弹性效果,你可以自行设置相关的参数对象赋值给dragTransition这个属性来改变这个动画效果。
bounceDamping: number
如果你设置了min或者max这个两个参数中的其中一个,那么属性会影响弹性动画的阻尼。如果设置为0,那么这个元素会一直来回晃动,默认的值是0。
const transition = {
min: 0,
max: 100,
bounceDamping: 8
}
<Frame
drag
dragTransition={transition}
/>
bounceStiffness: number
如果已经设置了min或者max的参数,那么设置这个参数会影响弹性动画的柔和度。越高的数值就会让动画效果变得越硬。默认这是是500。
const transition = {
min: 0,
max: 100,
bounceStiffness: 100
}
<Frame
drag
dragTransition={transition}
/>
max: number
最大的限制量,当动画超出这个范围,那么会回到这个范围的边界。
<Frame
drag
dragTransition={{ min: 0, max: 100 }}
/>
min: number
最小限制范围,如果在这回范围以外,元素就会回到这个范围的边界。
<Frame
drag
dragTransition={{ min: 0, max: 100 }}
/>
power: number
A higher power value equals a further target. Set to 0.8
by default.(待翻)
const transition = {
min: 0,
max: 100,
power: 0.2
}
<Frame
drag
dragTransition={transition}
/>
restDelta: number
当元素在动画时的距离目标距离的值小于这个设定的值时,就会立即结束动画并到目标结束的位置。默认的设置是0.01,默认这个设置会让动画更平滑,只有在相当少见的情况下你才需要去修改这个参数。
const transition = {
min: 0,
max: 100,
restDelta: 10
}
<Frame
drag
dragTransition={transition}
/>
timeConstant: number
调整这个参数会改变元素的减速的过程的时间。默认是700。
const transition = {
min: 0,
max: 100,
timeConstant: 200
}
<Frame
drag
dragTransition={transition}
/>
modifyTarget( v ): number
这个参数可以使用一个函数,自动传入一个点击位置的数字值,然后返回一个另外的数字值,从而可以实现一种类似于贴着网格拖拽的效果。
const transition = {
power: 0,
// Snap calculated target to nearest 50 pixels
modifyTarget: target => Math.round(target / 50) * 50
}
<Frame
drag
dragTransition={transition}
/>
函数参数和返回值
v: number
returns: number
Last updated
Was this helpful?