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 Change与bind事件代码
Sep 29 Javascript
JQuery的Ajax跨域请求原理概述及实例
Apr 26 Javascript
了不起的node.js读书笔记之mongodb数据库交互
Dec 22 Javascript
JavaScript中return false的用法
Mar 12 Javascript
jQuery的css() 方法使用指南
May 03 Javascript
JavaScript获取表格(table)当前行的值、删除行、增加行
Jul 03 Javascript
VUEJS实战之利用laypage插件实现分页(3)
Jun 13 Javascript
微信支付 JS API支付接口详解
Jul 11 Javascript
vue组件中的数据传递方法
May 14 Javascript
使用JavaScript中的lodash编写双色球效果
Jun 24 Javascript
js将日期格式转换为YYYY-MM-DD HH:MM:SS
Sep 18 Javascript
jQuery实现计算器功能
Oct 19 jQuery
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
让php处理图片变得简单 基于gb库的图片处理类附实例代码下载
2011/05/17 PHP
PHP基于GD库的缩略图生成代码(支持jpg,gif,png格式)
2014/06/19 PHP
PHP+Mysql基于事务处理实现转账功能的方法
2015/07/08 PHP
php curl模拟post请求和提交多维数组的示例代码
2015/11/19 PHP
PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
2016/09/11 PHP
Yii2中简单的场景使用介绍
2017/06/02 PHP
Laravel框架用户登陆身份验证实现方法详解
2017/09/14 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
在网页里看flash的trace数据的js类
2009/01/10 Javascript
js计算页面刷新的次数
2009/07/20 Javascript
JavaScript子窗口ModalDialog中操作父窗口对像
2012/12/11 Javascript
js弹出层(jQuery插件形式附带reLoad功能)
2013/04/12 Javascript
可选择和输入的下拉列表框示例
2013/11/05 Javascript
Nodejs极简入门教程(一):模块机制
2014/10/25 NodeJs
JS+CSS实现分类动态选择及移动功能效果代码
2015/10/19 Javascript
js css+html实现简单的日历
2016/07/14 Javascript
使用Javascript判断浏览器终端设备(PC、IOS(iphone)、Android)
2017/01/04 Javascript
thinkjs之页面跳转同步异步操作
2017/02/05 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
2017/02/20 Javascript
Angularjs 实现移动端在线测评效果(推荐)
2017/04/05 Javascript
浅谈vue父子组件怎么传值
2018/07/21 Javascript
javascript中数组的常用算法深入分析
2019/03/12 Javascript
layer.js之回调销毁对话框的例子
2019/09/11 Javascript
jQuery事件模型默认行为执行顺序及trigger()与 triggerHandler()比较实例分析
2020/04/30 jQuery
vue自定义组件(通过Vue.use()来使用)即install的用法说明
2020/08/11 Javascript
基于js实现的图片拖拽排序源码实例
2020/11/04 Javascript
原生js实现放大镜组件
2021/01/22 Javascript
部署Python的框架下的web app的详细教程
2015/04/30 Python
改进Django中的表单的简单方法
2015/07/17 Python
python遍历 truple list dictionary的几种方法总结
2016/09/11 Python
时尚的CSS3进度条效果
2012/02/22 HTML / CSS
武汉高蓝德国际.net机试
2016/06/24 面试题
人力资源部经理的岗位职责
2014/03/04 职场文书
计算机应用专业自荐信
2014/07/05 职场文书
群众路线自查自纠工作情况报告
2014/10/28 职场文书
出生公证书
2015/01/23 职场文书