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表格插件ParamQuery简单使用方法示例
Dec 05 Javascript
javascript获取元素偏移量的方法有哪些
Jun 24 Javascript
一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
Jun 26 Javascript
js鼠标点击按钮切换图片-图片自动切换-点击左右按钮切换特效代码
Sep 02 Javascript
JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性
Dec 26 Javascript
JS插件plupload.js实现多图上传并显示进度条
Nov 29 Javascript
jQuery实现多张图片上传预览(不经过后端处理)
Apr 29 jQuery
JS实现简单的选择题测评系统代码思路详解(demo)
Sep 03 Javascript
js与jQuery实现的用户注册协议倒计时功能实例【三种方法】
Nov 09 jQuery
node基于puppeteer模拟登录抓取页面的实现
May 09 Javascript
angularJs中ng-model-options设置数据同步的方法
Sep 30 Javascript
scrapyd schedule.json setting 传入多个值问题
Aug 07 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
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
PHP simplexml_load_string()函数实例讲解
2019/02/03 PHP
CI框架简单分页类用法示例
2020/06/06 PHP
JavaScript 原型继承之构造函数继承
2011/08/26 Javascript
raphael.js绘制中国地图 地图绘制方法
2014/02/12 Javascript
JS二维数组的定义说明
2014/03/03 Javascript
jQuery中appendTo()方法用法实例
2015/01/08 Javascript
JS实现兼容性好,带缓冲的动感网页右键菜单效果
2015/09/18 Javascript
浅谈jquery.form.js的ajaxSubmit和ajaxForm的使用
2016/09/09 Javascript
让微信小程序支持ES6中Promise特性的方法详解
2017/06/13 Javascript
关于Vue在ie10下空白页的debug小结
2018/05/02 Javascript
Node.js开发之套接字(socket)编程入门示例
2019/11/05 Javascript
浅谈js中的attributes和Attribute的用法与区别
2020/07/16 Javascript
python常见数制转换实例分析
2015/05/09 Python
python访问抓取网页常用命令总结
2017/04/11 Python
python 第三方库的安装及pip的使用详解
2017/05/11 Python
使用pygame模块编写贪吃蛇的实例讲解
2018/02/05 Python
Python线程threading模块用法详解
2020/02/26 Python
python 实现弹球游戏的示例代码
2020/11/17 Python
前端面试必备之CSS3的新特性
2017/09/05 HTML / CSS
一款纯css3制作的2015年元旦雪人动画特效教程
2014/12/29 HTML / CSS
HTML5标签大全
2016/11/23 HTML / CSS
联想新西兰官方网站:Lenovo New Zealand
2018/10/30 全球购物
俄罗斯Sportmarket体育在线商店:用于旅游和户外活动
2019/11/12 全球购物
英语专业推荐信
2013/11/16 职场文书
电子信息专业自荐书
2014/02/04 职场文书
文明宿舍获奖感言
2014/02/07 职场文书
劲霸男装广告词改编版
2014/03/21 职场文书
希特勒经典演讲稿
2014/05/19 职场文书
法定代表人身份证明书
2014/09/10 职场文书
2015年企业新年寄语
2014/12/08 职场文书
千手观音观后感
2015/06/03 职场文书
革命电影观后感
2015/06/18 职场文书
职工的安全责任书范文!
2019/07/02 职场文书
《文化苦旅》读后感:阅读,让人诗意地栖居在大地上
2019/12/24 职场文书
golang interface判断为空nil的实现代码
2021/04/24 Golang