moveable组件学习笔记三: resize更改大小

resize 更改元素大小

https://daybrush.com/moveable/release/latest/doc/Moveable.Resizable.html

1 属性

this.moveable = new Moveable(
  this.$refs.container, // moveable元素的父元素
  {
      className: 'draggable', // 可交互组件的class名称
      target: this.$refs.example, // 响应moveable操作的元素
      origin: false, // moveable元素的中心点是否可见,default: true
      /**更改大小属性 */
      resizable: true, // 是否支持更改大小
      keepRatio: false, // 是否等比例更改大小, default: false
      renderDirections:  ["nw", "ne", "sw", "se"], // resize的句柄显示, default: ["n", "nw", "ne", "s", "se", "sw", "e", "w"]
      throttleResize: 100, // resize时节流的单位(px),即每次resize的最小变动为100px, 默认不节流
  }
);

2 事件

resize事件有resizeStart,resize,resizeEnd三种,通过moveable实例的on方法添加监听事件,返回值event

  • resize
this.moveable
  .on(
    "resize",
    ({
      currentTarget, // moveable实例,即this.moveable
      moveable, // moveable的manager对象, const manager = this.moveable.getManager();
      target, // DOM 初始化moveable的target元素
      clientX, // number 鼠标所在屏幕的横坐标
      clientY, // number 鼠标实例所在屏幕的纵坐标
      datas,
      inputEvent, // Event 鼠标事件mousemove
      direction, // // [numberX, numberY] 用来判断所操作的句柄: [1,1]表示操作的句柄为右下,[-1,-1]表示操作的句柄是左上, [1,0]表示操作的句柄为右侧边的中点
      width, // number 元素(target)的css宽度
      height, // number 元素(target)的css高度
      offsetWidth, // number 元素(target)的offsetWidth(padding + width + border)
      offsetHeight, // number 元素(target)的offsetHeight(padding + height + border)
      dist, // number[] 元素的[width,height]相对于原始数据的变化数据[x,y]
      delta, // number[] 元素的[width,height]的相对上一次数据的数据[deltaX,deltaY]
      isPinch, // 元素是否被压缩,不包括resize,scale所引起的形变[**暂未证实具体作用**]
      drag, // 元素的拖拽事件,同onDrag的参数
    }) => {
      target.style.width = `${width}px`;
      target.style.height = `${height}px`;
      target.style.transform = `translate(${drag.beforeTranslate[0]}px, ${drag.beforeTranslate[1]}px)`;
    }
  )
  • resizeStart
this.moveable
  .on(
    "resizeStart",
    ({
      dragStart, // 同dragStart事件
      set, // (size: number[width, height]) => any, 设置元素的style宽高
      setMin, // (minSize: number[minWidth, minHeight]) => any, 设置元素的style最小宽高
      setMax, // (minSize: number[maxWidth, maxHeight]) => any, 设置元素的style最大宽高
      setOrigin, // (origin: Array<string | number>) => any, 设置css起点, (default: % %)[**暂未发现实际作用**]
      setFixedDirection, // (startDirecition: number[]) => any, 设置resize的固定方向; 默认为反方向:即往左或往上修改元素大小为负值,预期结果为往左或往上更改元素宽高;如果设置为正值,则元素宽高只能往右或往下延展,即使操作是往左或往上修改元素大小
      setRatio, // (ratio: number) => any, 设置resize的比例,仅在keepRatio属性为true时生效, 默认为offsetWidth / offsetHeight
      currentTarget, 
      moveable, 
      target, 
      clientX, 
      clientY, 
      datas,
      inputEvent, 
      direction, 
    }) => {
      console.log('resizeStart')
    }
  )
  • resizeEnd
this.moveable
    .on(
          "resizeEnd",
          ({
            lastEvent, // 最后一个拖动的事件,如果moveable实例未被执行resize操作,则为undefined
            isDrag,  // boolean moveable实例是否被拖动了
            isDouble,  // boolean moveable实例是否被双击
            currentTarget, 
            moveable, 
            target, 
            clientX, 
            clientY, 
            datas,
            inputEvent,
          }) => {
            
          }
        )

3 方法

  • request({direction, deltaWidth, deltaHeight, offsetWidth, offsetHeight, isInstant})
    direction // number[], default:[1, 1] resize的方向[暂时未发现实际作用]
    deltaWidth,deltaHeight // number, resize后的元素相对于resize前的元素的宽高变化的数据(单位:px)
    offsetWidth, offsetHeight// number, 元素resize后的绝对(实际)宽高(单位:px)
    isInstant, // boolean, 是否立即执行request和requestEnd
dragRequest() {
      const requester = this.moveable.request("draggable");
      requester.request({ deltaX: 10, deltaY: 10 });
      requester.requestEnd();
    },
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容