vue2.0使用Sortable.js实现的拖拽功能示例


Posted in Javascript onFebruary 21, 2017

简介

在使用vue1.x之前的版本的时候,页面中的拖拽功能,我在项目中是直接用的jquery ui中的sortable.js,只是在拖拽完成后,在update的回调函数中又重新排序了存放数据的数组。但是当把vue升级到2.0以上后发现拖拽功能失效了,于是使用了下面代码。

该案例主要是在用于vuejs2.0中实现的拖拽功能,用到的的js有Sortable.js,vuedraggable.js,当然还有vue.min.js,提供的案例使用的require.js加载。

实现效果

实现后的效果如图所示:

vue2.0使用Sortable.js实现的拖拽功能示例

html主要代码

<draggable :list="list2" :move="getdata" @update="datadragEnd" :options="{animation: 300,handle:'.dargDiv'}">
    <transition-group name="list-complete" >
      <div v-for="element in list2" :key="element.it.name" class="list-complete-item">
        <div class="styleclass dargDiv">{{element.id}}</div>
        <div class="styleclass">{{element.it.name}}</div>
      </div>
    </transition-group>
  </draggable>

css代码

body{
  font-family:'微软雅黑'
}
[v-cloak]{
  display:none;
}
#example{
  width:1000px;
  margin:0 auto;
}
.list-complete-item {
 transition: all 1s;
  height:50px;
  line-height: 50px;
  background: #000;
  color:#fff;
  text-align: center;
  font-size:24px;
  margin-top:10px;
}
.styleclass{
  width:100px;
  float:left;
}
.list-complete-enter, .list-complete-leave-active {
 opacity: 0;
 height: 0px;
 margin-top: 0px;
 padding: 0px;
 border: solid 0px;
}
.list-complete-sortable-chosen,.list-complete-sortable-ghost{
 opacity: 0;
 height: 0px;
 margin-top: 0px;
 padding: 0px;
 border: solid 0px;
}
.dargDiv{
  cursor:move;
  background:red;
}
.wrods{
  margin-top:50px;
}
p{
  line-height:24px;
  text-align:center;
}

js代码

require.config({
  urlArgs: "ver=1.0_0",
  
  paths:{
    "vue":'vue.min2',
    "sortablejs":'Sortable',
    "vuedraggable":'vuedraggable'  
  },
  shim:{
    'vue':{
      exports:'vue'
    } 
  }
}),

require(['vue','vuedraggable'],function(Vue,draggable){
  Vue.component('draggable', draggable);
   new Vue({
    el: '#example',
    data: {
      list2:[
      {id:"id1",it:{name:'bbbb'}},
      {id:"id2",it:{name:'2222'}},
      {id:"id3",it:{name:'3333'}},
      {id:"id4",it:{name:'4444'}}
      ]
    },
    methods:{
      getdata: function(evt){
        console.log(evt.draggedContext.element.id);
      },
      datadragEnd:function(evt){
        console.log('拖动前的索引:'+evt.oldIndex);
        console.log('拖动后的索引:'+evt.newIndex);
        
      }
      
    }
  })
  
})

里面的可配置的很多细节请参考参考地址,这里不做详细介绍。

可下载案例地址:Vue.Draggable-case_3water.rar

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery得到font-size属性值实现代码
Sep 30 Javascript
21个JavaScript事件(Events)属性汇总
Dec 02 Javascript
javascript中JSON.parse()与eval()解析json的区别
May 19 Javascript
js图片上传前预览功能(兼容所有浏览器)
Aug 24 Javascript
jquery.Jcrop结合JAVA后台实现图片裁剪上传实例
Nov 05 Javascript
一个非常好用的文字滚动的案例,鼠标悬浮可暂停[两种方案任选]
Dec 01 Javascript
js addDqmForPP给标签内属性值加上双引号的函数
Dec 24 Javascript
原生JS发送异步数据请求
Jun 08 Javascript
JS+Canvas绘制动态时钟效果
Nov 10 Javascript
axios post提交formdata的实例
Mar 16 Javascript
微信小程序学习笔记之目录结构、基本配置图文详解
Mar 28 Javascript
Vue使用Clipboard.JS在h5页面中复制内容实例详解
Sep 03 Javascript
javascript 实现文本使用省略号替代(超出固定高度的情况)
Feb 21 #Javascript
详解JavaScript 中getElementsByName在IE中的注意事项
Feb 21 #Javascript
使用get方式提交表单在地址栏里面不显示提交信息
Feb 21 #Javascript
JavaScript中的this陷阱的最全收集并整理(没有之一)
Feb 21 #Javascript
从零学习node.js之文件操作(三)
Feb 21 #Javascript
JavaScript实现按键精灵的原理分析
Feb 21 #Javascript
javascript 组合按键事件监听实现代码
Feb 21 #Javascript
You might like
Laravel 5.4重新登录实现跳转到登录前页面的原理和方法
2017/07/13 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
2019/04/30 PHP
JS 继承实例分析
2008/11/04 Javascript
HTML颜色选择器实现代码
2010/11/23 Javascript
运用JQuery的toggle实现网页加载完成自动弹窗
2014/03/18 Javascript
js实现鼠标悬浮给图片加边框的方法
2015/01/30 Javascript
ExtJS 4.2 Grid组件单元格合并的方法
2016/10/12 Javascript
jQuery多选框选择数量限制方法
2017/02/08 Javascript
轻松学习Javascript闭包
2017/03/01 Javascript
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
2017/10/17 Javascript
JavaScript运行原理分析
2018/02/09 Javascript
js 数组详细操作方法及解析合集
2018/06/01 Javascript
微信小程序onLaunch异步,首页onLoad先执行?
2018/09/20 Javascript
Node 代理访问的实现
2019/09/19 Javascript
django 修改server端口号的方法
2018/05/14 Python
python高级特性和高阶函数及使用详解
2018/10/17 Python
Python django框架应用中实现获取访问者ip地址示例
2019/05/17 Python
python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法
2020/02/26 Python
Python selenium文件上传下载功能代码实例
2020/04/13 Python
使用python脚本自动生成K8S-YAML的方法示例
2020/07/12 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
2020/10/15 Python
CSS3 伪类选择器 nth-child()说明
2010/07/10 HTML / CSS
新加坡交友网站:be2新加坡
2019/04/10 全球购物
Watchshop德国:欧洲在线手表No.1
2019/06/20 全球购物
游戏商店:Eneba
2020/04/25 全球购物
优秀学生自我鉴定范例
2013/12/18 职场文书
楼面部长岗位职责范本
2014/02/14 职场文书
大学生未来职业生涯规划书
2014/02/15 职场文书
2014年体育工作总结
2014/11/24 职场文书
交通事故和解协议书
2015/01/27 职场文书
护士年终个人总结
2015/02/13 职场文书
中学教师读书笔记
2015/07/01 职场文书
假如给我三天光明:舟逆水而行,人遇挫而达 
2019/10/29 职场文书
实习员工转正的评语汇总,以备不时之需
2019/12/17 职场文书
如何理解Vue简单状态管理之store模式
2021/05/15 Vue.js
HTML5 新增内容和 API详解
2021/11/17 HTML / CSS