近期改版RXEditor,把改版过程,用到的技术点,记录下来。昨天完成了静态页面的制作,制作过程并未详细记录,后期已经不愿再补了,有些遗憾。不过工作成果完整保留在github上,地址:https://github.com/vularsoft/studio-ui

这个项目下面的html-demo.html,便是静态文件。

话不多说,今天就把昨天的HTML转化成VUE。

先看效果:

布局原理

页面采用纯弹性盒子flex box布局,无float postion等,页面分成如下几个区域:

细实线描述的是各个DIV之间的嵌套关系,粗黑线是独立的DIV,我称它们为把手(HADLE),主要用来接受鼠标拖动事件,以完成拖动操作。handle非为两种,横向x-handle,纵向y-handle,css中定义x-handle宽度为3px,高度为100%,y-handle高度为3px,宽度为100%,鼠标光标也相应设置一下:

`.vular-studio .x-handle{

width: 3px;

cursor: w-resize;

z-index: 10;

}

.vular-studio .y-handle{

height: 3px;

cursor:

s-resize;

z-index: 10;

}`

拖动原理

带有把手的区域固定大小(固定宽度或者高度),不带把手的部分跟随弹性盒子变化。把手handle是一个独立的VUE组件,它把拖动信息传递给父窗口,父窗口改变自身大小。以bottom-area为例,这是一个可以改变自身大小的DIV:

`

name: 'BottomArea',

components:{

YHandle,

},

data () { return {

height:220,

}

},

methods: {

heightChange(movement){ this.height += movement if(this.height < 30){ this.height = 30 } if(this.height > 600){ this.height = 600 }

},

},

} `

它对应的把手代码:

`

name: 'YHandle',

data () { return {

lastY:'' }

},

created () {

document.addEventListener('mouseup', this.mouseUp)

},

destroyed() {

document.removeEventListener('mouseup', this.mouseUp)

},

methods: {

mouseDown(event){

document.addEventListener('mousemove', this.mouseMove) this.lastY = event.screenY

},

mouseMove(event){

console.log('move') this.$emit('heightChange', this.lastY - event.screenY) this.lastY = event.screenY

},

mouseUp(event){ this.lastY = '' document.removeEventListener('mousemove', this.mouseMove)

},

},

}

`

制作步骤

先建一个VUE项目:

1、安装node

2、安装webpack

3、安装VUE

4、新建VUE项目:vue init webpack-simple

5、根据相应布局制作VUE组件

具体代码,请参考:https://github.com/vularsoft/studio-ui,根据标注,获取相应的版本记录即可。

vue 用户拖拽窗口大小_VUE实战1:鼠标拖放改变窗口大小,后台管理界面相关推荐

  1. java和vue实现拖拽可视化_Vue拖拽组件开发实例详解

    摘要:这篇Vue栏目下的"Vue拖拽组件开发实例详解",介绍的技术点是"Vue拖拽组件开发实例.vue拖拽组件.拖拽组件.组件开发.开发实例.实例详解",希望对 ...

  2. 基于Vue的拖拽插件的实战应用,但最后我还是选择了手写

    因为项目上有一个在规定区域内自由拖拽的小需求,自己纯js写又有点小麻烦,就花了点时间寻找到这个小组件. 介绍 vue-drag-resize是一个用于拖拽,缩放的组件 根据网上搜索到的使用教程,都是照 ...

  3. Vue 实现拖拽模块(二)自定义拖拽组件位置

    上文介绍了 拖拽添加组件 的简单实现,本文将继续给大家分享如何自定义拖拽组件位置的简单实现,文中通过示例代码介绍,感兴趣的小伙伴们可以了解一下 本文主要介绍了 Vue自定义拖拽组件位置的简单实现,具体 ...

  4. Vue 实现拖拽模块(三)自定义拖拽组件的样式

    上文介绍了 自定义拖拽组件位置 的简单实现,本文将继续给大家分享如何自定义拖拽组件位置的简单实现,文中通过示例代码介绍,感兴趣的小伙伴们可以了解一下 本文主要介绍了 Vue 自定义拖拽组件的样式,具体 ...

  5. 拖拽功能 php,基于Vue实现拖拽功能

    这篇文章主要为大家详细介绍了Vue实现拖拽功能,拖动方块进行移动,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了Vue实现拖拽功能的具体代码,供大家参考,具体内容如下 效果图: ...

  6. vue 实现文本的拖拽_基于Vue实现拖拽功能

    本文实例为大家分享了Vue实现拖拽功能的具体代码,供大家参考,具体内容如下 效果图: HTML代码: 位置 x:{{val.x}} y:{{val.y}} //注意这里要通过指令绑定函数将当前元素的位 ...

  7. vue.js 拖拽排序_快速轻巧的Vue.js拖放可排序库

    vue.js 拖拽排序 vue-smooth-dnd (vue-smooth-dnd) A fast and lightweight drag&drop, sortable library f ...

  8. Vue 实现拖拽模块(一)拖拽添加组件

    本文主要介绍了vue拖拽组件实现构建页面的简单实现,文中通过示例代码介绍,感兴趣的小伙伴们可以了解一下 本文主要介绍了 Vue拖拽添加组件的简单实现,具体如下: 效果图 实现思路 使用 H5 的新特性 ...

  9. 解决VUE自定义拖拽指令时 onmouseup 与 click事件冲突

    功能描述: 如图,右侧悬浮菜单按钮,只支持上下方向拖动,点击时展开或关闭菜单. BUG说明: 鼠标上下方向拖拽,如果松开时鼠标位于悬浮按钮上会默认执行click事件,经验证,click事件与mouse ...

最新文章

  1. 艾伟_转载:C# Design Patterns (4) - Proxy
  2. 3天html自学教程,html自学教程(八)html5基础
  3. hyperopt中文文档:Scipy2013
  4. OpenKruise 2021 规划:More than workloads
  5. Chapter 1 First Sight——25
  6. windows搭建SVN服务MD版
  7. QWidget 设置背景图片
  8. [HDOJ]1018. Big Number
  9. 运算符重载——递增运算符重载
  10. python-函数入门(二)
  11. 全部选中替换_一键解锁查找替换的新玩法!
  12. 举例说明jquery插件的编写方法
  13. 广西计算机一级机试考试试题,2010年12月广西区计算机一级考试机试试题
  14. java 扒网站_扒网站工具,看好哪个网站,指定好URL,自动扒下来做成模版。所见网站,皆可为我所用!...
  15. java web聊天室私聊map_javaweb聊天小项目
  16. 2019计算机就业形势图表分析,2019毕业生就业形势分析
  17. vue 将echarts的图片导出成pdf文件
  18. STM32Cube MX USB虚拟U盘+FATFS+W25Q128
  19. TPS929120的CRC校验的三种实现方法
  20. Android Intent Service Usage

热门文章

  1. 利用欧拉角旋转正交_张量旋转=矩阵旋转?
  2. 一起来学习 WebRTC (篇一)| 掘金技术征文
  3. appium+python搭建自动化测试框架_TestAPP框架(三)
  4. 做个爱学习的孩子!收藏2019知名机器学习暑期学校大列表
  5. Blend for Visual Studio 2013
  6. jquery压缩图片插件
  7. ThinkPHP 3.2 vendor()方法的深入研究及Phpqrcode的正确扩展
  8. Linux下获取详细硬件信息的工具:Dmidecode命令详解
  9. 转:在windows通过Xrdp软件远程桌面连接Fedora
  10. 打印函数如何适应不同的打印机