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 相关文章推荐
怎么让脚本或里面的函数在所有图片都载入完毕的时候执行
Oct 17 Javascript
JQuery 获得绝对,相对位置的坐标方法
Feb 09 Javascript
js获取通过ajax返回的map型的JSONArray的方法
Jan 09 Javascript
使用jQuery jqPlot插件绘制柱状图
Dec 18 Javascript
BootStrap中
Dec 10 Javascript
jQuery Validate表单验证插件实现代码
Jun 08 jQuery
vue中使用vue-cli接入融云实现即时通信
Apr 19 Javascript
vue-week-picker实现支持按周切换的日历
Jun 26 Javascript
详解微信小程序图片地扯转base64解决方案
Aug 18 Javascript
js数组相减简单示例【删除a数组所有与b数组相同元素】
Mar 04 Javascript
vue实现淘宝购物车功能
Apr 20 Javascript
JS异步堆栈追踪之为什么await胜过Promise
Apr 28 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
PHP+DBM的同学录程序(5)
2006/10/09 PHP
PHP递归删除目录几个代码实例
2014/04/21 PHP
php中ob_flush函数和flush函数用法分析
2015/03/18 PHP
JavaScript地图拖动功能SpryMap的简单实现
2013/07/17 Javascript
输入自动提示搜索提示功能的使用说明:sugggestion.txt
2013/09/02 Javascript
Javasipt:操作radio标签详解
2013/12/30 Javascript
javascript的propertyIsEnumerable()方法使用介绍
2014/04/09 Javascript
JavaScript的arguments对象应用示例
2014/09/15 Javascript
jQuery使用$.ajax进行即时验证实例详解
2015/12/11 Javascript
动态创建按钮的JavaScript代码
2016/01/29 Javascript
AngularJS上拉加载问题解决方法
2016/05/23 Javascript
微信小程序实现图片自适应(支持多图)
2017/01/25 Javascript
基于javascript实现最简单选项卡切换
2017/02/01 Javascript
canvas实现图像布局填充功能
2017/02/06 Javascript
禁止弹窗中蒙层底部页面跟随滚动的几种方法
2017/12/07 Javascript
vue使用技巧及vue项目中遇到的问题
2018/06/04 Javascript
layui实现table加载的示例代码
2018/08/14 Javascript
Node.js net模块功能及事件监听用法分析
2019/01/05 Javascript
Vue 前端实现登陆拦截及axios 拦截器的使用
2019/07/17 Javascript
小程序中this.setData的使用和注意事项
2019/08/28 Javascript
node.js中事件触发器events的使用方法实例分析
2019/11/23 Javascript
Vue组件模板及组件互相引用代码实例
2020/03/11 Javascript
[01:11:10]2014 DOTA2华西杯精英邀请赛 5 24 iG VS VG加赛
2014/05/26 DOTA
[44:04]OG vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python实现登陆知乎获得个人收藏并保存为word文件
2015/03/16 Python
用Python的SimPy库简化复杂的编程模型的介绍
2015/04/13 Python
tensorflow实现softma识别MNIST
2018/03/12 Python
python性能测量工具cProfile使用解析
2019/09/26 Python
Django 如何使用日期时间选择器规范用户的时间输入示例代码详解
2020/05/22 Python
CSS3之多背景background使用示例
2013/10/18 HTML / CSS
h5封装下拉刷新
2020/08/25 HTML / CSS
软件测试工程师面试问题精选
2016/10/28 面试题
Java Servlet API中forward() 与redirect()的区别
2014/04/20 面试题
J2EE是技术还是平台还是框架
2016/08/14 面试题
个人查摆问题整改措施
2014/10/04 职场文书
学会Python数据可视化必须尝试这7个库
2021/06/16 Python