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的Alert消息框插件使用介绍
Oct 09 Javascript
js加强的经典分页实例
Mar 15 Javascript
Javascript中的迭代、归并方法详解
Jun 14 Javascript
jquery.serialize() 函数语法及简单实例
Jul 08 Javascript
js实现无缝循环滚动
Jun 23 Javascript
JS触摸屏网页版仿app弹窗型滚动列表选择器/日期选择器
Oct 30 Javascript
JS简单实现表格排序功能示例
Dec 20 Javascript
jquery实现静态搜索功能(可输入搜索文字)
Mar 28 jQuery
详解Angular 4.x 动态创建组件
Apr 25 Javascript
图解javascript作用域链
May 27 Javascript
node.js实现带进度条的多文件上传
Mar 27 Javascript
vue实现自定义多选按钮
Jul 16 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
php5 pdo新改动加载注意事项
2008/09/11 PHP
php用header函数实现301跳转代码实例
2013/11/25 PHP
php中的路径问题与set_include_path使用介绍
2014/02/11 PHP
探寻PHP脚本不报错的原因
2014/06/12 PHP
php获取访问者IP地址汇总
2015/04/24 PHP
再Docker中架设完整的WordPress站点全攻略
2015/07/29 PHP
Js 中debug方式
2010/02/07 Javascript
ie下动态加态js文件的方法
2011/09/13 Javascript
struts2+jquery+json实现异步加载数据(自写)
2013/06/24 Javascript
javascript中的nextSibling使用陷(da)阱(keng)
2014/05/05 Javascript
Js实现无刷新删除内容
2015/04/29 Javascript
浅析JavaScript函数的调用模式
2016/08/10 Javascript
微信小程序左滑删除效果的实现代码
2017/02/20 Javascript
使用jQuery卸载全部事件的思路详解
2017/04/03 jQuery
JavaScript表单即时验证 验证不成功不能提交
2017/08/31 Javascript
原生js实现移动端触摸轮播的示例代码
2017/12/22 Javascript
React Router v4 入坑指南(小结)
2018/04/08 Javascript
解决vue打包后vendor.js文件过大问题
2019/07/03 Javascript
通过vue写一个瀑布流插件代码实例
2019/09/07 Javascript
vue-路由精讲 二级路由和三级路由的作用
2020/08/06 Javascript
JavaScript获取时区实现过程解析
2020/09/24 Javascript
详解Python读取配置文件模块ConfigParser
2017/05/11 Python
Python中反射和描述器总结
2018/09/23 Python
Python日志无延迟实时写入的示例
2019/07/11 Python
Python流程控制 while循环实现解析
2019/09/02 Python
python 消除 futureWarning问题的解决
2019/12/25 Python
tensorflow入门:TFRecordDataset变长数据的batch读取详解
2020/01/20 Python
HTML5 window/iframe跨域传递消息 API介绍
2013/08/26 HTML / CSS
事业单位个人应聘自荐信
2013/09/21 职场文书
儿科主治医生个人求职信
2013/09/23 职场文书
自荐信格式写作方法有哪些呢
2013/11/20 职场文书
自荐信的基本格式
2014/02/22 职场文书
副处级干部考察材料
2014/05/17 职场文书
门卫岗位职责说明书
2014/08/18 职场文书
运动会广播稿200字
2014/10/18 职场文书
离婚协议书范本
2015/01/26 职场文书