【movable-area、movable-view】 可移动区域组件说明

movable-area、movable-view 可移动区域,其原型如下:

 1 <movable-area scale-area="[Boolean]">
 2     <movable-view
 3         direction="[all|vertical|horizontal|none]"    
 4         inertia="[Boolean]"
 5         out-of-bounds="[Boolean]"
 6         x="[Number|String]"
 7         y="[Number|String]"
 8         damping="[Number]"
 9         friction="[Number]"
10         disabled="[Boolean]"
11         scale="[Boolean]"
12         scale-min="[Number]"
13         scale-max="[Number]"
14         scale-value="[Number]"
15         animation="[Boolean]"
16         bindchange="[EventHandle]"
17         bindscale="[EventHandle]"
18         htouchmove="[EventHandle]"
19         vtouchmove="[EventHandle]"    
20     >
21     </movable-view>
22 </movable-area>

<movable-area>组件属性说明:

属性 是否必需 类型 默认值 说明
scale-area Boolean false 当里面的movable-view设置为支持双指缩放时,设置此值可将缩放手势生效区域修改为整个movable-area

<movable-view>组件属性说明:

属性 是否必需 类型 默认值 说明
direction [all | vertical | horizontal | none] none 移动方向,默认值为none不能移动
inertia Boolean false 是否带有惯性移动
out-of-bounds Boolean false 超过可移动区域后,movable-view是否还可以移动(可移动但会自动回移到movable-area的区域内)
x [String | Number] 0 定义组件位于movable-area内的x轴坐标,比如: 30 或 30px
y [String | Number] 0 定义组件位于movable-area内的y轴坐标
damping Number 20 阻尼系数,用于控制x或y改变时的动画和过界回弹的动画,值越大移动越快
friction Number 2 摩擦系数,用于控制惯性滑动的动画,值越大摩擦力越大,滑动越快停止;必须大于0,否则会被设置成默认值
disabled Boolean false 是否禁用移动
scale Boolean false 是否支持双指缩放,默认缩放手势生效区域是在movable-view内
scale-min Number 0.5 定义缩放倍数最小值
scale-max Number 10 定义缩放倍数最大值
scale-value Number 1 定义缩放倍数,取值范围为 0.5 - 10
animation Boolean false 是否使用动画
bindchange EventHandle  

拖动过程中触发的事件,自带event参数

event.detail = {x: x, y: y, source: source}

event.detail.source表示产生移动的原因

1) 值为touch 表示拖动

2) 值为touch-out-of-bounds 超出移动范围

3) 值为out-of-bounds 超出移动范围后的回弹

4) 值为friction表示惯性

5)值为空字符串 表示通过 js控制了移动

bindscale EventHandle  

 缩放过程中触发的事件,自带event参数

event.detail = {x: x, y: y, scale: scale}

htouchmove EventHandle   初次手指触摸后移动为横向的移动,如果catch此事件,则意味着touchmove事件也被catch
vtouchmove EventHandle   初次手指触摸后移动为纵向的移动,如果catch此事件,则意味着touchmove事件也被catch

注意事项:

1)movable-view 必须设置width和height属性,不设置默认为10px

2)movable-view 默认为绝对定位,top和left属性为0px

3)当movable-view小于movable-area时,movable-view的移动范围是在movable-area内;当movable-view大于movable-area时,movable-view的移动范围必须包含movable-area(x轴方向和y轴方向分开考虑)

4)movable-view必须在<movable-area/>组件中,并且必须是直接子节点,否则不能移动。

猜你喜欢

转载自www.cnblogs.com/wm218/p/9889221.html