Skip to main content
Version: 下个版本

MovableView

可移动的视图容器,在页面中可以拖拽滑动。movable-view 必须在 movable-area 组件中,并且必须是直接子节点,否则不能移动。

支持情况:

参考文档

类型​

ComponentType<MovableViewProps>

示例代码​

class App extends Components {
render () {
return (
<MovableArea style='height: 200px; width: 200px; background: red;'>
<MovableView style='height: 50px; width: 50px; background: blue;' direction='all'></MovableView>
</MovableArea>
)
}
}

MovableViewProps​

参数类型默认值必填说明
direction"all" or "vertical" or "horizontal" or "none"none否movable-view 的移动方向,属性值有all、vertical、horizontal、none
inertiabooleanfalse否movable-view 是否带有惯性
outOfBoundsbooleanfalse否超过可移动区域后,movable-view 是否还可以移动
xstring or number否定义 x 轴方向的偏移,如果 x 的值不在可移动范围内,会自动移动到可移动范围;改变 x 的值会触发动画
ystring or number否定义 y 轴方向的偏移,如果 y 的值不在可移动范围内,会自动移动到可移动范围;改变 y 的值会触发动画
dampingnumber20否阻尼系数,用于控制x或y改变时的动画和过界回弹的动画,值越大移动越快
frictionnumber2否摩擦系数,用于控制惯性滑动的动画,值越大摩擦力越大,滑动越快停止;必须大于 0,否则会被设置成默认值
disabledbooleanfalse否是否禁用
scalebooleanfalse否是否支持双指缩放,默认缩放手势生效区域是在 movable-view 内
scaleMinnumber0.5否定义缩放倍数最小值
scaleMaxnumber10否定义缩放倍数最大值
scaleValuenumber1否定义缩放倍数,取值范围为 0.5 - 10
animationbooleantrue否是否使用动画
onChangeCommonEventFunction<onChangeEventDetail>否拖动过程中触发的事件
onScaleCommonEventFunction<onScaleEventDetail>否缩放过程中触发的事件
onHTouchMoveTouchEventFunction否初次手指触摸后移动为横向的移动,如果 catch 此事件,则意味着 touchmove 事件也被 catch
onVTouchMoveTouchEventFunction否初次手指触摸后移动为纵向的移动,如果 catch 此事件,则意味着 touchmove 事件也被 catch
onDragStartCommonEventFunction否开始拖动时触发
onDragEndCommonEventFunction否拖动结束时触发

API 支持度​

API微信小程序H5React Native
MovableViewProps.direction✔️✔️
MovableViewProps.inertia✔️
MovableViewProps.outOfBounds✔️
MovableViewProps.x✔️✔️
MovableViewProps.y✔️✔️
MovableViewProps.damping✔️
MovableViewProps.friction✔️
MovableViewProps.disabled✔️✔️
MovableViewProps.scale✔️
MovableViewProps.scaleMin✔️
MovableViewProps.scaleMax✔️
MovableViewProps.scaleValue✔️
MovableViewProps.animation✔️
MovableViewProps.onChange✔️
MovableViewProps.onScale✔️
MovableViewProps.onHTouchMove✔️
MovableViewProps.onVTouchMove✔️
MovableViewProps.onDragStart✔️
MovableViewProps.onDragEnd✔️

TChangeSource​

拖动过程中触发的事件

参数说明
touch拖动
touch-out-of-bounds超出移动范围
out-of-bounds超出移动范围后的回弹
friction惯性
setData

onChangeEventDetail​

参数类型说明
xnumberX 坐标
ynumberY 坐标
sourcekeyof TChangeSource触发事件

onScaleEventDetail​

参数类型说明
xnumberX 坐标
ynumberY 坐标
scalenumber缩放比例