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的jqDnR拖拽溢出的修改
Feb 12 Javascript
JQury slideToggle闪烁问题及解决办法
Jul 05 Javascript
js数组与字符串的相互转换方法
Jul 09 Javascript
jQuery+Ajax+PHP+Mysql实现分页显示数据实例讲解
Sep 27 Javascript
jQuery UI插件实现百度提词器效果
Nov 21 Javascript
微信小程序 自己制作小组件实例详解
Dec 22 Javascript
在js中做数字字符串补0(js补零)
Mar 25 Javascript
理解javascript async的用法
Aug 22 Javascript
JS实现的tab切换并显示相应内容模块功能示例
Aug 03 Javascript
Jquery如何使用animation动画效果改变背景色的代码
Jul 20 jQuery
vue 弹出遮罩层样式实例
Jul 22 Javascript
解决vue页面渲染但dom没渲染的操作
Jul 27 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
追忆往昔!浅谈收音机的百年发展历史
2021/03/01 无线电
php 代码优化之经典示例
2011/03/24 PHP
深入解析yii权限分级式访问控制的实现(非RBAC法)
2013/06/13 PHP
php实现通用的信用卡验证类
2015/03/24 PHP
php程序内部post数据的方法
2015/03/31 PHP
php图片添加文字水印实现代码
2016/03/15 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
2020/04/23 PHP
Javascript 异步加载详解(浏览器在javascript的加载方式)
2012/05/20 Javascript
javascript实现点击单选按钮链接转向对应网址的方法
2015/08/12 Javascript
jQuery实现模仿微博下拉滚动条加载数据效果
2015/12/25 Javascript
浅析JS原型继承与类的继承
2016/04/07 Javascript
Java遍历集合方法分析(实现原理、算法性能、适用场合)
2016/04/25 Javascript
Bootstrap每天必学之工具提示(Tooltip)插件
2016/04/26 Javascript
Javascript中获取浏览器类型和操作系统版本等客户端信息常用代码
2016/06/28 Javascript
全面解析JS字符串和正则表达式中的match、replace、exec等函数
2016/07/01 Javascript
Angular使用ng-messages与PHP进行表单数据验证
2016/12/28 Javascript
详解基于node.js的脚手架工具开发经历
2019/01/28 Javascript
vue学习笔记之给组件绑定原生事件操作示例
2020/02/27 Javascript
分享一款超好用的JavaScript 打包压缩工具
2020/04/26 Javascript
python构建深度神经网络(DNN)
2018/03/10 Python
Python实现简单查找最长子串功能示例
2019/02/26 Python
Python中的异常处理try/except/finally/raise用法分析
2019/02/28 Python
如何利用Pyecharts可视化微信好友
2019/07/04 Python
Django rest framework分页接口实现原理解析
2020/08/21 Python
python3从网络摄像机解析mjpeg http流的示例
2020/11/13 Python
HTML5 直播疯狂点赞动画实现代码 附源码
2020/04/14 HTML / CSS
英国领先的男装设计师服装购物网站:Mainline Menswear
2018/02/04 全球购物
Speedo澳大利亚官网:全球领先游泳品牌
2018/02/04 全球购物
美津浓美国官网:Mizuno美国
2018/08/07 全球购物
给孩子的新年寄语
2014/04/08 职场文书
个人安全承诺书
2014/05/22 职场文书
六五普法先进个人主要事迹材料
2015/11/03 职场文书
《失物招领》教学反思
2016/02/20 职场文书
个人向公司借款协议书
2016/03/19 职场文书
Nginx利用Logrotate实现日志分割
2022/05/20 Servers