MovableView

基础库 1.11.0 开始支持,低版本需做兼容

movable-area

movable-view的可移动区域

注意:movable-area 必须设置widthheight属性,不设置默认为10px

movable-view

可移动的视图容器,在页面中可以拖拽滑动

属性名类型默认值描述最低版本
directionStringnonemovable-view的移动方向,属性值有allverticalhorizontalnone
xNumber0定义x轴方向的偏移,会换算为left属性,如果x的值不在可移动范围内,会自动移动到可移动范围
yNumber0定义y轴方向的偏移,会换算为top属性,如果y的值不在可移动范围内,会自动移动到可移动范围
disabledBooleanfalse是否禁用
onTouchStartEventHandle触摸动作开始1.11.5
onTouchMoveEventHandle触摸后移动1.11.5
onTouchEndEventHandle触摸动作结束1.11.5
onTouchCancelEventHandle触摸动作被打断,如来电提醒,弹窗1.11.5
onChangeEventHandle拖动过程中触发的事件,event.detail = {x: x, y: y, source: source},其中source表示产生移动的原因,值可为touch(拖动)
onChangeEndEventHandle拖动结束触发的事件,event.detail = {x: x, y: y}

示例代码

  1. <movable-area style="width: 100px;height: 100px;background-color: red;margin-left: 100px;">
  2. <movable-view
  3. onChange="onMovableViewChange"
  4. onChangeEnd="onMovableViewChangeEnd"
  5. direction="vertical"
  6. x="{{10}}"
  7. y="{{10}}"
  8. style="width: 40px;height: 40px;background-color: rgba(0, 0, 0, 0.5);"
  9. >
  10. <view onTap="onTapMovableView">movable-view</view>
  11. </movable-view>
  12. </movable-area>

tips

  • 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必须在<movable-area/>组件中,并且必须是直接子节点,否则不能移动。

原文: https://docs.alipay.com/mini/component/movable-view