想找一个可以resize块的组件,找了好几天都没找到合适的。
尝试过的开源组件:
“react-rnd”:被拖拽的块采用的布局方式是“position:absolute”,更改布局的话拖拽的事件会失效,没有仔细去研究原理。但是我是在不知道这个布局怎么去比较好的兼容页面的flex布局,所以放弃了这个组件
网上查到的大多数拖拽组件是Draggable拖拽,多用于块的拖拽排序等,而我需要的是resize块的大小,两者截然不同。
看了有人用原生js写的html文件,上面的效果还是不错的,所以读懂了代码,在此代码的结构上进行了改动,运用到了react中。
核心代码:
var theobject = null;
var dir;
//拖拽的时候初始化了一个object
resizeObject = () => {
this.el = null; //pointer to the object
this.dir = ""; //type of current resize (n, s, e, w, ne, nw, se, sw)
this.grabx = null; //Some useful values
this.graby = null;
this.width = null;
this.height = null;
this.left = null