可移动的视图容器,在页面中可以拖拽滑动。
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 | 
| inertia | 
boolean | 
false | 
否 | 
movable-view 是否带有惯性 | 
| outOfBounds | 
boolean | 
false | 
否 | 
超过可移动区域后,movable-view 是否还可以移动 | 
| x | 
string or number | 
 | 
否 | 
定义 x 轴方向的偏移,如果 x 的值不在可移动范围内,会自动移动到可移动范围;改变 x 的值会触发动画 | 
| y | 
string or number | 
 | 
否 | 
定义 y 轴方向的偏移,如果 y 的值不在可移动范围内,会自动移动到可移动范围;改变 y 的值会触发动画 | 
| damping | 
number | 
20 | 
否 | 
阻尼系数,用于控制x或y改变时的动画和过界回弹的动画,值越大移动越快 | 
| friction | 
number | 
2 | 
否 | 
摩擦系数,用于控制惯性滑动的动画,值越大摩擦力越大,滑动越快停止;必须大于 0,否则会被设置成默认值 | 
| disabled | 
boolean | 
false | 
否 | 
是否禁用 | 
| scale | 
boolean | 
false | 
否 | 
是否支持双指缩放,默认缩放手势生效区域是在 movable-view 内 | 
| scaleMin | 
number | 
0.5 | 
否 | 
定义缩放倍数最小值 | 
| scaleMax | 
number | 
10 | 
否 | 
定义缩放倍数最大值 | 
| scaleValue | 
number | 
1 | 
否 | 
定义缩放倍数,取值范围为 0.5 - 10 | 
| animation | 
boolean | 
true | 
否 | 
是否使用动画 | 
| onChange | 
BaseEventOrigFunction<onChangeEventDeatil> | 
 | 
否 | 
拖动过程中触发的事件 | 
| onScale | 
BaseEventOrigFunction<onScaleEventDeatil> | 
 | 
否 | 
缩放过程中触发的事件 | 
| onHTouchMove | 
TouchEventFunction | 
 | 
否 | 
初次手指触摸后移动为横向的移动,如果 catch 此事件,则意味着 touchmove 事件也被 catch | 
| onVTouchMove | 
TouchEventFunction | 
 | 
否 | 
初次手指触摸后移动为纵向的移动,如果 catch 此事件,则意味着 touchmove 事件也被 catch | 
API 支持度
| API | 
微信小程序 | 
H5 | 
React 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 | 
✔️ | 
 | 
TChangeSource
拖动过程中触发的事件
| 参数 | 
说明 | 
| touch | 
拖动 | 
| touch-out-of-bounds | 
超出移动范围 | 
| out-of-bounds | 
超出移动范围后的回弹 | 
| friction | 
惯性 | 
 | 
setData | 
onChangeEventDeatil
| 参数 | 
类型 | 
说明 | 
| x | 
number | 
X 坐标 | 
| y | 
number | 
Y 坐标 | 
| source | 
“” or “touch” or “touch-out-of-bounds” or “out-of-bounds” or “friction” | 
触发事件 | 
onScaleEventDeatil
| 参数 | 
类型 | 
说明 | 
| x | 
number | 
X 坐标 | 
| y | 
number | 
Y 坐标 | 
| scale | 
number | 
缩放比例 | 
API 支持度
| API | 
微信小程序 | 
百度小程序 | 
支付宝小程序 | 
H5 | 
React Native | 
| MovableView | 
✔️ | 
✔️ | 
✔️ | 
 |