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 相关文章推荐
不错的一个日期输入 动态
Nov 06 Javascript
JavaScript 对象的属性和方法4种不同的类型
Mar 19 Javascript
js日期时间补零的小例子
Mar 05 Javascript
jquery form 隐藏的input 选择
Apr 29 Javascript
JavaScript中的small()方法使用详解
Jun 08 Javascript
第九篇Bootstrap导航菜单创建步骤详解
Jun 21 Javascript
详解使用Visual Studio Code对Node.js进行断点调试
Sep 14 Javascript
浅谈JavaScript作用域和闭包
Sep 18 Javascript
js实现开关灯效果
Mar 30 Javascript
解决vue 表格table列求和的问题
Nov 06 Javascript
JS实现无限轮播无倒退效果
Sep 21 Javascript
vue实现lodop打印功能的示例
Nov 11 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
星际争霸任务指南——人族
2020/03/04 星际争霸
基于mysql的bbs设计(四)
2006/10/09 PHP
百度地图API应用之获取用户的具体位置
2014/06/10 PHP
php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法
2015/05/25 PHP
thinkphp,onethink和thinkox中验证码不显示的解决方法分析
2016/06/06 PHP
php实现xml与json之间的相互转换功能实例
2016/07/07 PHP
Yii中CGridView禁止列排序的设置方法
2016/07/12 PHP
JS 字符串连接[性能比较]
2009/05/10 Javascript
用jQuery技术实现Tab页界面之二
2009/09/21 Javascript
jquery 滚动条事件简单实例
2013/07/12 Javascript
JQuery核心函数是什么及使用方法介绍
2016/05/03 Javascript
Javascript缓存API
2016/06/14 Javascript
window.open不被拦截的简单实现代码(推荐)
2016/08/04 Javascript
js闭包和垃圾回收机制示例详解
2021/03/01 Javascript
[03:14]2014DOTA2西雅图国际邀请赛 EG战队巡礼
2014/07/07 DOTA
Python多线程同步Lock、RLock、Semaphore、Event实例
2014/11/21 Python
利用Python爬取微博数据生成词云图片实例代码
2017/08/31 Python
Python实现压缩和解压缩ZIP文件的方法分析
2017/09/28 Python
网红编程语言Python将纳入高考你怎么看?
2018/06/07 Python
搞定这套Python爬虫面试题(面试会so easy)
2019/04/03 Python
python使用opencv实现马赛克效果示例
2019/09/28 Python
python能做什么 python的含义
2019/10/12 Python
Django项目中使用JWT的实现代码
2019/11/04 Python
Python多线程正确用法实例解析
2020/05/30 Python
Python 存取npy格式数据实例
2020/07/01 Python
详解基于Scrapy的IP代理池搭建
2020/09/29 Python
Python实现冒泡排序算法的完整实例
2020/11/04 Python
英国运动服、设备及配件网站:DW Sports
2019/12/04 全球购物
创建服务型党组织实施方案
2014/02/25 职场文书
竞聘演讲稿
2014/04/24 职场文书
酒店开业庆典策划方案
2014/05/28 职场文书
员工年终自我评价
2014/09/14 职场文书
以权谋私检举信范文
2015/03/02 职场文书
爱护公物主题班会
2015/08/17 职场文书
一文搞懂如何实现Go 超时控制
2021/03/30 Python
Springboot配置suffix指定mvc视图的后缀方法
2021/07/03 Java/Android