因业务需求,需要一个树形表格,并且支持拖拽排序,任意未知插入,github搜了下,真不到合适的,大部分树形表格都没有拖拽功能,所以决定自己实现一个.这里分享一下实现过程,项目源代码请看github,插件已打包封装好,发布到npm上 本博文会分为两部分,第一部分为使用方式,第二部分为实现方式 安装方式 npm i drag-tree-table --save-dev 使用方式 import dragTreeTable from 'drag-tree-table' 模版写法 <dragTreeTab…
之前有写过Vue.Draggable实现拖拽效果(快速使用)(http://www.cnblogs.com/songdongdong/p/6928945.html)最近项目中要用到这个拖拽的效果,当产品那个今日头条app编辑导航,拖拽的效果时,心里暗爽,(之前玩过呀,很简单的,事实证明,任何看似简单的东西,实现起来都不会那么一帆风顺,当然:当你真正实现了该效果时,会发现其实还是挺简单的:ps:自说自话,自己打自己脸\(^o^)/~),闲话少说,直接切入正题: 仔细观察发现,今日头条导航部分编辑效…
探探/Tinder是一个很火的陌生人社交App,趁着国庆假期闲暇时间倒腾了个Nuxt.js项目,项目中有个模块模仿探探滑动切换界面效果.支持左右拖拽滑动like和no like及滑动回弹效果. 一览效果 emmmm,是不是效果还不错,哈哈~ 好了,下面就简单的讲解下具体的实现过程,大家如果感兴趣的话也可以去试一试. ◆ 整体布局 页面模块布局分为 顶部headerBar.翻牌子区域.底部tabBar 三个部分. 在页面刚加载的时候,为了避免卡片区域空白,加了一张背景图 (古风bg). 布局模板t…
margin布局拖拽 Vue.directive('drag', { bind(el, binding, vnode, oldVnode) { const dialogHeaderEl = el.querySelector('#top'); // const dragDom = el.querySelector('.alert_child'); dialogHeaderEl.style.cursor = 'move'; let dragBox = el; //获取当前元素 dialogHeade…
原生js拖拽: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible&q…
最近在使用vuedraggable做导航时候,谷歌拖拽是没问题的,但是在火狐测试时候,拖拽时候是可以成功,但是火狐还是打开了一个新的tab,并且搜索了,一开始想着是阻止默认行为,但是在@end时间中阻止了默认行为,使用vue的.prevent.stop也是不行, 后来各种搜索后在这里才找到答案 传送 我是在created中添加了 created() { document.body.ondrop = function (event) { event.preventDefault(); event.…
Vue table表单拖拽 业务需求: 因为数据展示使用的是 elementUI 的 Table进行数据展示的,现在的需求是通过拖拽表单进行表单排序.同时,动态修改表单中的数据排列顺序.查阅了好多资料,也翻看了好多github上别人封装好的表单插件,但是最终都不是自己想要的,其中主要原因就是,后台管理系统页面中,同一个窗口可能涉及到多个表单拖拽排序,与此同时,使用部分插件就有可能导致数据更新不及时,或者下次在使用的时候,数据无论如何赋值就是更新不成功,导致最终渲染的要拖拽的表单一会有数据,一会无…
<template> <!-- target-order="unshift"必须设置,如果不设置的话后台穿的value值得顺序会被data重置 -  -->     <el-transfer ref="transfer" id="transfer" v-model="value" target-order="unshift" :data="datas" fi…
Vue.directive('dialogDrag', { inserted:function(el) { const dragDom = el.querySelector('.jsPropupLayerHead'); dragDom.style.cursor = 'move'; dragDom.onmousedown = (e) => { event.stopPropagation(); // 鼠标按下,计算当前元素距离可视区的距离 const disX = e.clientX - el.of…
1.下载包:npm install vuedraggable 配置:package.json "dependencies": { "element-ui": "^1.3.4", "less": "^2.7.2", "less-loader": "^4.0.4", "vue": "^2.3.3", "vue-router…