movable-area
解释:movable-view
的可移动区域。
movable-area
必须设置width和height属性,不设置默认为10px。
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
scale-area | Boolean | false | 当里面的movable-view设置为支持双指缩放时,设置此值可将缩放手势生效区域修改为整个movable-area 。 |
movable-view
解释:可移动的视图容器,在页面中可以拖拽滑动。
属性说明:
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
direction | String | none | movable-view 的移动方向,属性值有 all 、 vertical 、 horizontal 、 none |
inertia | Boolean | false | movable-view 是否带有惯性 |
out-of-bounds | Boolean | false | 超过可移动区域后,movable-view 是否还可以移动。 |
x | Number | - | 定义 x 轴方向的偏移,如果 x 的值不在可移动范围内,会自动移动到可移动范围;改变 x 的值会触发动画。 |
y | Number | - | 定义 y 轴方向的偏移,如果 y 的值不在可移动范围内,会自动移动到可移动范围;改变 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 | true | 是否使用动画 |
bindchange | EventHandle | 拖动过程中触发的事件,event.detail = {x: x, y: y, source: source},其中source表示产生移动的原因,值可为touch(拖动)、out-of-bounds(超出移动范围后的回弹)、inertia(惯性)和空字符串(setData)。 | |
bindscale | EventHandle | 缩放过程中触发的事件,event.detail = {x: x, y: y, scale: scale} |
除了基本事件外,movable-view提供了两个特殊事件。
类型 | 触发条件 |
---|---|
htouchmove | 手指初次触摸后发生横向移动,如果catch此事件,则意味着touchmove事件也被catch |
vtouchmove | 手指初次触摸后发生纵向移动,如果catch此事件,则意味着touchmove事件也被catch |
说明:
- movable-view 必须设置 width 和 height 属性,不设置默认为 10px;
- movable-view 默认为绝对定位,top 和 left 属性为 0px;
- 当movable-view小于movable-area时,movable-view的移动范围是在movable-area内;
- 当movable-view大于movable-area时,movable-view的移动范围必须包含movable-area(x 轴方向和 y 轴方向分开考虑);
- movable-view必须在组件中,并且必须是直接子节点,否则不能移动。
示例:在开发者工具中预览效果
- <view class="movable-view">
<movable-area style="height: 300px;width: 300px;background: green;">
<movable-view style="height: 40px; width: 40px; background: black;" x="30" y="30" direction="all">
</movable-view>
</movable-area>
</view>