vue拖拽缩放组件(vue

您所在的位置:网站首页 vue图片放大缩小组件 vue拖拽缩放组件(vue

vue拖拽缩放组件(vue

#vue拖拽缩放组件(vue| 来源: 网络整理| 查看: 265

vue-drag-resize是一个支持拖拽与缩放的vue插件,支持vue 1.x与2.x,使用方便,上手便利。

特征 轻量级,无依赖性所有的操作都是可联动的支持触摸事件定义元素可拖拽,或者可缩放,或者二者兼有提供用于调整大小的操作点与操作框可以按照比例缩放或者不按照比例缩放元素可限制拖拽的最大与最小值、拖拽的范围是否超出其父元素可限制拖动的方向为垂直或水平轴

gitHib地址: https://github.com/kirillmurashov/vue-drag-resize

用法 npm i -s vue-drag-resize

一、注册为全局组件,在vue项目中注册(在任何组件中使用的时候,不用引入直接):

import Vue from 'vue' import VueDragResize from 'vue-drag-resize'; Vue.component('vue-drag-resize', VueDragResize);

二、在需要的组件中引入

import VueDragResize from 'vue-drag-resize'; export default { name: 'app', components: { VueDragResize }, } 属性 属性说明类型是否必须默认值备注isActive激活状态Boolean否false处于激活状态的组件才能进行拖拽与缩放等操作,状态呈现激活状态isDraggable允许拖拽Boolean否trueisResizable允许缩放Boolean否trueaspectRatio允许等比例缩放Boolean否false设置为true,则会按照元素的元比例缩放。坑:定义了这个属性,发现重新设置宽高的时候出现了异常(新值比例不同于旧值),需要在重设宽高的时候把aspectRatio设置为false,再将其设置回去,才能保证新值的等比例w宽度Number否200h高度Number否200minw最小宽度Number否50注意不能设置为0,因为这个组件里面属性要求大于0minh最小高度Number否50注意不能设置为0,因为这个组件里面属性要求大于0x定位leftNumber否0y定位topNumber否0z层级Number否auto注意在元素激活的时候,z会被设置为最高的,所以在管理z的时候要注意sticks元素缩放的节点定义Array否[‘tl’, ‘tm’, ‘tr’, ‘mr’, ‘br’, ‘bm’, ‘bl’, ‘ml’]tl - Top lefttm - Top middletr - Top rightmr - Middle rightbr - Bottom rightbm - Bottom middlebl - Bottom leftml - Middle leftpreventActiveBehavior单击组件外区域来禁止组件行为Boolean否false设置这个属性true,就可以解决在其他区域操作返回到组件区域的时候,不需要再次点击就激活组件parentLimitation允许超出父级元素Boolean否false设置为true,则限制操作组件不能超出父级元素parentW父级宽度Number否0该值限制了元素可以拖动的水平最大宽度,前提是parentLimitation=trueparentH父级高度Number否0该值限制了元素可以拖动的水平最大高度,前提是parentLimitation=trueparentScaleX定义初始水平缩放比例Number否1parentScaleY定义初始垂直缩放比例Number否1axis允许拖拽的方向String否both取值可以为x、 y、 both、nonedragHandle定义拖拽时的classnameString否无dragCancel定义取消拖拽时的classnameString否无 方法

例子:

方法说明参数类型参数例子clicked组件点击事件组件实例activated点击组件事件无resizing缩放时事件object{left: Number, //the X position of the componenttop: Number, //the Y position of the componentwidth: Number, //the width of the componentheight: Number //the height of the component}resizestop缩放结束object同resizing一样dragging拖拽时事件object同resizing一样dragstop拖拽结束事件object同resizing一样 使用问题

怎么修改使点击组件外面后,不需要点击组件才能进行?

:preventActiveBehavior="true" 设置这个属性,禁用点击组件外事件

在拖拽元素里面添加input等类似的表单性元素,无法正常点击操作,特别是focus无法做到,click也是经常失效

原因:vue-drag-resize 的设计问题,在元素内部只能触发本元素,如果是有表单元素,只能被动的触发

解决方案:

activateEv(index) { console.log('activateEv' + index); this.$refs['drag-input'].focus(); }

参考: https://github.com/sidratariq/vue-drag-resize https://juejin.cn/post/6844903713430061063



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3