vue2.0使用Sortable.js实现的拖拽功能示例

发布时间 - 2026-01-10 23:11:52    点击率:

简介

在使用vue1.x之前的版本的时候,页面中的拖拽功能,我在项目中是直接用的jquery ui中的sortable.js,只是在拖拽完成后,在update的回调函数中又重新排序了存放数据的数组。但是当把vue升级到2.0以上后发现拖拽功能失效了,于是使用了下面代码。

该案例主要是在用于vuejs2.0中实现的拖拽功能,用到的的js有Sortable.js,vuedraggable.js,当然还有vue.min.js,提供的案例使用的require.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_jb51.rar

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# vue.js实现拖拽  # vue实现拖拽  # vue2.0  # 拖拽  # vue elementUi+sortable.js实现嵌套表格拖拽问题  # Vue中使用elementui与Sortable.js实现列表拖动排序  # vue+element-ui+sortable.js实现表格拖拽功能  # 拖拽插件sortable.js实现el-table表格拖拽效果  # JS拖拽排序插件Sortable.js用法实例分析  # Sortable.js拖拽排序使用方法解析  # Sortable.js功能强大的JavaScript 拖拽库示例详解  # 拖动  # 是在  # 我在  # 微软  # 详细介绍  # 不做  # 升级到  # 回调  # 请参考  # 中又  # 大家多多  # 如图所示  # 加载  # 使用了  # 完成后  # 只是在  # complete  # group  # transition 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 制作旅游网站html,怎样注册旅游网站?  如何在局域网内绑定自建网站域名?  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  android nfc常用标签读取总结  Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  EditPlus中的正则表达式 实战(4)  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  如何在阿里云完成域名注册与建站?  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  IOS倒计时设置UIButton标题title的抖动问题  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  java中使用zxing批量生成二维码立牌  敲碗10年!Mac系列传将迎来「触控与联网」双革新  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  如何快速查询网址的建站时间与历史轨迹?  安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  如何确认建站备案号应放置的具体位置?  千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  清除minerd进程的简单方法  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  JavaScript如何实现错误处理_try...catch如何捕获异常?  如何在服务器上三步完成建站并提升流量?  Laravel如何使用Gate和Policy进行授权?(权限控制)  Laravel如何编写单元测试和功能测试?(PHPUnit示例)  佛山网站制作系统,佛山企业变更地址网上办理步骤?  Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  Laravel如何处理和验证JSON类型的数据库字段  Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道  香港服务器租用费用高吗?如何避免常见误区?  在线教育网站制作平台,山西立德教育官网?  原生JS获取元素集合的子元素宽度实例  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  魔方云NAT建站如何实现端口转发?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  Android 常见的图片加载框架详细介绍  Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑  使用豆包 AI 辅助进行简单网页 HTML 结构设计  如何在建站之星网店版论坛获取技术支持?  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  非常酷的网站设计制作软件,酷培ai教育官方网站?  宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  Laravel PHP版本要求一览_Laravel各版本环境要求对照  如何在云虚拟主机上快速搭建个人网站?