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 相关文章推荐
Javascript remove 自定义数组删除方法
Oct 20 Javascript
jquery动态增加删除表格行的小例子
Nov 14 Javascript
iframe里的页面禁止右键事件的方法
Jun 10 Javascript
jQuery实现的AJAX简单弹出层效果代码
Nov 26 Javascript
javascript实现数字倒计时特效
Mar 30 Javascript
Javascript如何判断数据类型和数组类型
Jun 22 Javascript
JQ中$(window).load和$(document).ready区别与执行顺序
Mar 01 Javascript
Angularjs的启动过程分析
Jul 18 Javascript
浅谈Vue.js路由管理器 Vue Router
Aug 16 Javascript
详解js静态检查工具eslint配置文件
Nov 23 Javascript
详解为什么Vue中的v-if和v-for不建议一起用
Jan 13 Vue.js
Vue组件化(ref,props, mixin,.插件)详解
May 15 Vue.js
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 数据结构 算法 三元组 Triplet
2011/07/02 PHP
PHP连接SQLSERVER 注意事项(附dll文件下载)
2012/06/28 PHP
PHP无限分类(树形类)的深入分析
2013/06/02 PHP
php中将数组转成字符串并保存到数据库中的函数代码
2013/09/29 PHP
php中switch与ifelse的效率区别及适用情况分析
2015/02/12 PHP
php从csv文件读取数据并输出到网页的方法
2015/03/14 PHP
PHP标准类(stdclass)用法示例
2016/09/28 PHP
PHP基于curl后台远程登录正方教务系统的方法
2016/10/14 PHP
PHP hex2bin()函数用法讲解
2019/02/25 PHP
firefox中JS读取XML文件
2006/12/21 Javascript
JavaScript 对象成员的可见性说明
2009/10/16 Javascript
动态的绑定事件addEventListener方法的使用
2014/01/24 Javascript
jQuery实现的Div窗口震动特效
2014/06/09 Javascript
javascript跨域方法、原理以及出现问题解决方法(详解)
2015/08/06 Javascript
require.js的用法详解
2015/10/20 Javascript
jQuery实现三级菜单的代码
2016/05/09 Javascript
JavaScript实现跟随滚动缓冲运动广告框
2017/07/15 Javascript
深入理解angular2启动项目步骤
2017/07/15 Javascript
vue.js  父向子组件传参的实例代码
2017/10/29 Javascript
vue axios整合使用全攻略
2018/05/24 Javascript
JS浅拷贝和深拷贝原理与实现方法分析
2019/02/28 Javascript
vue学习笔记之slot插槽用法实例分析
2020/02/29 Javascript
Python实现Smtplib发送带有各种附件的邮件实例
2017/06/05 Python
关于Django ForeignKey 反向查询中filter和_set的效率对比详解
2018/12/15 Python
Python实现决策树并且使用Graphviz可视化的例子
2019/08/09 Python
Python 切分数组实例解析
2019/11/07 Python
python opencv根据颜色进行目标检测的方法示例
2020/01/15 Python
python 判断一组数据是否符合正态分布
2020/09/23 Python
HTML5 LocalStorage 本地存储详细概括(多图)
2017/08/18 HTML / CSS
俄罗斯品牌服装和鞋子在线商店:BRIONITY
2020/03/26 全球购物
第一范式(1NF)、第二范式(2NF)和第三范式(3NF)之间的区别是什么?
2016/04/28 面试题
浅谈react路由传参的几种方式
2021/03/23 Javascript
运动会领导邀请函
2014/01/10 职场文书
商务助理求职信范文
2014/04/20 职场文书
辞职信如何写
2015/02/27 职场文书
教师年度考核自我评鉴
2015/08/11 职场文书