前言:前段时间负责公司的运营管理后台项目,通过运营后台的PC端拖拽配置布局,达到App首页模板的动态UI界面配置,生成页面。趁着周末,整理一下当时所了解到的拖拽。文章会根据大家的反馈或者自己学习经验的累积成长不定期更新丰富。如果你想了解更多PC端的拖拽开发,欢迎点赞关注或者收藏一波[鞠躬]。

之前在掘金一篇文章里看到这段话:

UI 开发的三种模式

1.手写标签和样式代码,生成页面

2.可视化拖拽 UI 组建,生成页面

3.直接输入设计稿,输出可用页面

有幸当前公司处于UI开发的第二阶段

当时开发参考过的小部分网站,其它参考过的大量网站由于电脑硬盘出现故障丢失了无法恢复。

以上网站这些不是很重要,真正重要有用的网站链接我已经帮你筛选整理出来了,并贴在下面的文章里面(分为演示与教程两类),点击相关链接即可进入相关开发学习。

贴上面网站的原因是我想告诉大家,插件选型之前一定要先整理好自己的需求,根据需求在网上寻找插件,并且打开控制台,看看效果是不是你所需要的类型,否则下载到本地后调试了半天发现最后不能达到自己想要的效果,这样既浪费时间又浪费精力,就得不偿失了。所以,我之后有时间会整理一套插件选型筛选的思维导图出来,到时发到掘金或者个人公众号,大家一起分享进步。

好了,言归正传,我们开始上主菜:

拖拽程度的层次

就我搜索到的资料来看,拖拽的程度是分为三类的,如果你有知道的其它类型,欢迎与我交流分享。

1.视图上的拖拽

比如这个:

通过定位来改变顺序,注意看控制台的节点位置,并没有发生对应的改变。这种拖拽仅仅是视图交互上的效果,也是最最简单程度效果的拖拽。

链接:

2.视图与节点同步变化的拖拽

2-1 JQ-UI

比如这个:

请注意看控制台的节点位置,发生了对应的改变。这种拖拽是能达到视图与节点的同步变化的效果。

链接:

2-2 H5-draggable

比如这个:

h5提供的draggable属性,请注意看控制台的节点位置,也发生了对应的改变。

链接:

2-3 JQ-UI与H5-draggable的取舍问题

JQ-UI和H5-draggable属性都能达到我们想要的效果,那我们应该选择哪个呢?个人而言,最后还是选择了JQ-UI(当然重构我们改用了vue)。主要考虑的地方是灵活性,JQ-UI优于H5-draggable属性的地方正是在于灵活性。draggable属性里面方法封装的比JQ-UI相对而言比较固定,不好调整。所以,以我的经验来看,如果你是简简简单的小需求的拖拽,draggable的属性绝对能够满足你;但如果你的拖拽需求比较复杂,那么我建议你用JQ-UI会比较好点。

3.数据,视图,节点的三者同步变化

比如:这个

vue插件Vue-Draggable,也是vue相关拖拽插件中的star最多的,配置项也最丰富的。

链接:

教程:github-vue-Sortable(draggable插件是基于sortabl二次封装的,多看看这篇对使用draggable会有很大的帮助)

项目实践

重构的时候我们是用vue的,选择了这个draggable插件,后面事实证明也是正确的。"花了比用JQ至少少一半的时间就达到了相同的效果"。毕竟Vue只需要考虑数据关注业务流程而不需要考虑节点的操作问题,这点还是非常不错的。反正谁用谁知道[吐舌]。好了,我们贴出代码说明:

// 引入组件

import draggable from 'vuedraggable'

// 拖拽模块箱子到 => 可整理的箱子/ 垃圾箱子

class="sortable"

v-model="templateJson.child"

// 设置接收的拖拽

:options="{group:'people'}"

@remove="stop">

:item="item"

:type="templateData.type"

v-for="(item, $index) in templateJson.child"

:key="$index">



v-model="templateJson.child"

:options="{group:'people'}">

class="dragArea"

v-model="moduleJson.child"

:clone="clone"

// 开始拖拽的箱子的options选项配置

:options="{group:{ name:'people', pull:'clone', put:false },sort:false}"

@end="onEnd">

:item="item"

:type="templateData.type"

v-for="(item, $index) in moduleJson.child"

:key="$index">

clone是指复制,sort:false是指不使用排序。代码中相关options属性的配置说明你可以参考教程中的说明去对应了解。我这里就不再重复赘述了。

一句话总结

如果是简单的拖拽,建议用H5的draggable属性。

如果是复杂点的拖拽,建议用JQ-UI实现。

如果是数据驱动,用Vue-Draggable插件是很不错的选择。

一起交流?

如果你有其它更好的想法想一起交流,请订阅微信公众号yhzg_gz(点击复制,在微信中添加公众号粘贴即可)与我联系,追求代码质量,高效率编程是我们共同的目标。

that's all, 以上就是我目前所有的关于PC端项目拖拽经验的总结。觉得对你开发有帮助的可以点赞收藏一波,如果我哪里写错了,希望能指点出来。如果你有更好的想法或者建议,可以提出来与我交流。大家一起进步,共同成长。再次感谢[鞠躬]。

vue拖动改变模板_可视化拖拽 UI 布局之拖拽篇相关推荐

  1. 可视化拖拽 UI 布局之拖拽篇

    前言:前段时间负责公司的运营管理后台项目,通过运营后台的PC端拖拽配置布局,达到App首页模板的动态UI界面配置,生成页面.趁着周末,整理一下当时所了解到的拖拽.文章会根据大家的反馈或者自己学习经验的 ...

  2. 5可视化数据大屏模板_可视化大屏模板分享

    3个月前的一天,老板找到我:"小王,数据怎么才能产生让人惊艳的感觉呢?" 我说:"肯定是用代码让程序员操作一下,再让设计师做一下配色,最好还能是数据实时变化的那种,简直就 ...

  3. qgraphicsview 添加矩形框并拖动改变大小_如何用手机巧影软件为视频添加字幕

    欢迎大家观看七夜视频工作室教程,我是七夜. 我们这次要讲的内容是如何用手机巧影软件为视频添加字幕,本次教程为图文教程非常简单! 我们的教程需要用到的软件是 巧影,很强大的视频剪辑软件,以后所有教程都会 ...

  4. vue企业网站模板_模板网站VS定制网站,企业如何选择?

    步入互联网时代,企业需要建设属于自己的网站,网站建设到底是选择模板网站,还是定制网站呢?笔者接下来跟大家详细分析一下. 网站建设的类型 一.网站建设的类型 模板网站 模板型网站是用已经成形的网站为框架 ...

  5. vue企业门户网站模板_门户网站建设费用需要多少钱?

    现在互联网发展的速度越来越快了,前几年还是2g时代,现在已经变成5g了,各方面的技术也变得越来越成熟了,南宁网站建设也不例外,越来越多的南宁企业想建设门户网站,而价格是广大用户最关心的问题,那建设一个 ...

  6. vue拖动添加模块展示_一个全新的Vue拖拽特性实现:“移动”部分

    关于拖拽 CabloyJS提供了完备的拖拽特性,可以实现移动和调整尺寸两大类功能,这里对移动的开发进行阐述关于调整尺寸的开发,请参见:拖拽:调整尺寸 演示 开发步骤 下面以模块test-party为例 ...

  7. vue项目中 五小一大六宫格拖拽排序,6宫格拖拽换位,矩阵拖拽排序

    背景:项目中用到1.4.6.9.12.16宫格排序,拖拽换位等场景,项目是监控的视频矩阵,用户矩阵拖拽排序换位,之前已经实现1.4.9.12.16等矩阵式排列的拖拽排序,但是六宫格要求五小一大,之前的 ...

  8. 【项目技术点总结之一】vue集成d3.js利用svg加载图片实现缩放拖拽功能

    [项目技术点总结之一]vue集成d3.js利用svg加载图片实现缩放拖拽功能 前言 概述 技术介绍 实现过程 插件安装 引用组件 初始化组件 实现效果 简单理解 使用d3创建一个svg 在svg中提添 ...

  9. vue 修改模板{{}}标签_详解Vue 动态添加模板的几种方法

    以下方法只适用于 Vue1.0 版本,推荐系数由高到低排列. 通常我们会在组件里的 template 属性定义模板,或者是在*.vue文件里的 template 标签里写模板.但是有时候会需要动态生成 ...

最新文章

  1. 【C++】多线程互斥锁、条件变量
  2. 饿了么交付中心语言栈转型总结
  3. Nat. Mach. Intell. | 利用条件循环神经网络生成特定性质分子
  4. AT24C0X I2C通信原理
  5. 【已解决】Linux远程桌面连接-VNC
  6. 信用卡到底逾期多少天才会上征信系统?
  7. 计算机怎么弹出专业团队,2018年专业技术人员继续教育答案92分
  8. Ionic!用Web技术开发移动应用!
  9. 封装条形码MaHelper
  10. python3操作shp文件
  11. 经典商业融资计划书PPT模板
  12. 手机开热点但是电脑一直连接不上_电脑无法连接手机开的热点怎么解决
  13. 南通大学《构建之法》课程助教总结
  14. 数据压缩作业:JPEG原理分析及JPEG解码器的调试
  15. icon小图标集合网站
  16. win10 mysql8.0修改密码
  17. [19保研]清华大学交叉信息研究院优秀大学生夏令营
  18. 使用U盘为台式机安装centos7
  19. Apache Flink之架构概述和环境(章节一)
  20. 华东师大在职计算机分数线,关于在职研究生华东师范大学分数线的详细介绍!...

热门文章

  1. #论文 《Towards Binary-Valued Gates for Robust LSTM Training》
  2. MyBatis的架构设计以及实例分析--转
  3. 并发编程 — 并发数据结构--转载
  4. shell:syntax error:unexpected end of file/Starting proxy www-balancer: cannot bind socket--转载
  5. 【采用】反欺诈之四大杀器
  6. 基于正则化的特征选择
  7. 简单记录一下fabric版本1.4的环境搭建,
  8. Java8 - Future 接口
  9. Spring Session - 源码解读
  10. 白话Elasticsearch17-深度探秘搜索技术之match_phrase query 短语匹配搜索