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各版本环境要求对照
如何在云虚拟主机上快速搭建个人网站?

