【微信小程序】可移动区域设置(96/100)

在这里插入图片描述

布局:

<!--pages/movableArea/movableArea.wxml-->
<view class="page-section">movable-view区域小于movable-area</view>
      <movable-area >
        <movable-view x="{{x}}" y="{{y}}" direction="all">text</movable-view>
      </movable-area>
      <view class="btn-area">
      <button bindtap="tap" class="page-body-button" type="primary">点击移动到 (30px, 30px)</button>
    </view>
    <view class="page-section-title">只可以横向移动</view>
    <movable-area>
        <movable-view direction="horizontal">text</movable-view>
      </movable-area>
      <view class="page-section-title">只可以纵向移动</view>
      <movable-area>
        <movable-view direction="vertical">text</movable-view>
      </movable-area>

      <view class="page-section-title">可超出边界</view>
      <movable-area>
        <movable-view direction="all" out-of-bounds>text</movable-view>
      </movable-area>

      <view class="page-section-title">带有惯性</view>
      <movable-area>
        <movable-view direction="all" inertia>text</movable-view>
      </movable-area>

      <view class="page-section-title">可放缩</view>
      <movable-area scale-area>
        <movable-view direction="all" bindchange="onChange" bindscale="onScale" scale scale-min="0.5" scale-max="4" scale-value="{{scale}}">text</movable-view>
      </movable-area>

样式:

/* pages/movableArea/movableArea.wxss */
movable-area{
  width: 100%;
  height: 200rpx;
  background: #f00;
}

控制:

// pages/movableArea/movableArea.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    x: 0,
    y: 0,
    scale: 2,
  },

  tap() {
    this.setData({
      x: 30,
      y: 30
    })
  },
  tap2() {
    this.setData({
      scale: 3
    })
  },

  onChange(e) {
    console.log(e.detail)
  },

  onScale(e) {
    console.log(e.detail)
  },

功能描述
movable-view的可移动区域。

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

movable-view

功能描述

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

属性说明

属性 类型 默认值 必填 说明 最低版本
direction string none 否 movable-view的移动方向,属性值有all、vertical、horizontal、none 1.2.0

inertia boolean false 否 movable-view是否带有惯性 1.2.0

out-of-bounds boolean false 否 超过可移动区域后,movable-view是否还可以移动 1.2.0

x number/string 否 定义 x 轴方向的偏移,如果 x 的值不在可移动范围内,会自动移动到可移动范围;改变 x 的值会触发动画;单位支持px(默认)、rpx; 1.2.0

y number/string 否 定义 y 轴方向的偏移,如果 y 的值不在可移动范围内,会自动移动到可移动范围;改变 y 的值会触发动画;单位支持px(默认)、rpx; 1.2.0

damping number 20 否 阻尼系数,用于控制 x 或y改变时的动画和过界回弹的动画,值越大移动越快 1.2.0

friction number 2 否 摩擦系数,用于控制惯性滑动的动画,值越大摩擦力越大,滑动越快停止;必须大于0,否则会被设置成默认值 1.2.0

disabled boolean false 否 是否禁用 1.9.90

scale boolean false 否 是否支持双指缩放,默认缩放手势生效区域是在 movable-view 内 1.9.90

scale-min number 0.5 否 定义缩放倍数最小值 1.9.90

scale-max number 10 否 定义缩放倍数最大值 1.9.90

scale-value number 1 否 定义缩放倍数,取值范围为 0.5 - 10 1.9.90

animation boolean true 否 是否使用动画 2.1.0

bindchange eventhandle 否 拖动过程中触发的事件,event.detail = {x, y, source} 1.9.90

bindscale eventhandle 否 缩放过程中触发的事件,event.detail = {x, y, scale},x和 y 字段在2.1.0之后支持 1.9.90

htouchmove eventhandle 否 初次手指触摸后移动为横向的移动时触发,如果 catch 此事件,则意味着 touchmove 事件也被catch 1.9.90

vtouchmove eventhandle 否 初次手指触摸后移动为纵向的移动时触发,如果 catch 此事件,则意味着 touchmove 事件也被catch 1.9.90

bindchange 返回的 source 表示产生移动的原因
值 说明
touch 拖动
touch-out-of-bounds 超出移动范围
out-of-bounds 超出移动范围后的回弹
friction 惯性
空字符串 setData

自研产品推荐

历时一年半多开发终于smartApi-v1.0.0版本在2023-09-15晚十点正式上线
smartApi是一款对标国外的postman的api调试开发工具,由于开发人力就作者一个所以人力有限,因此v1.0.0版本功能进行精简,大功能项有:

  • api参数填写
  • api请求响应数据展示
  • PDF形式的分享文档
  • Mock本地化解决方案
  • api列表数据本地化处理
  • 再加上UI方面的打磨

为了更好服务大家把之前的公众号和软件激活结合,如有疑问请大家反馈到公众号即可,下个版本30%以上的更新会来自公众号的反馈。
嗯!先解释不上服务端原因,API调试工具的绝大多数时候就是一个数据模型、数据处理、数据模型理解共识的问题解决工具,所以作者结合自己十多年开发使用的一些痛点来打造的,再加上服务端开发一般是面向企业的,作者目前没有精力和时间去打造企业服务。再加上没有资金投入所以服务端开发会滞后,至于什么时候会进行开发,这个要看募资情况和用户反馈综合考虑。虽然目前国内有些比较知名的api工具了,但作者使用后还是觉得和实际使用场景不符。如果有相关吐槽也可以在作者的公众号里反馈蛤!
下面是一段smartApi使用介绍:
在这里插入图片描述

下载地址:

https://pan.baidu.com/s/1iultkXqeLNG4_eNiefKTjQ?pwd=cnbl

posted @ 2022-07-14 21:31  lichong951  阅读(25)  评论(0编辑  收藏  举报  来源