vue实现div拖拽互换位置


Posted in Javascript onJuly 29, 2020

本文实例为大家分享了vue实现div拖拽互换位置的具体代码,供大家参考,具体内容如下

template模板

<transition-group tag="div" class="container">
 <div class="item" v-for="(item,index) in items" :key="item.key" :style="{background:item.color,width:'80px',height:'80px'}"
  draggable="true"
 @dragstart="handleDragStart($event, item)"
  @dragover.prevent="handleDragOver($event, item)"
  @dragenter="handleDragEnter($event, item)" 
  @dragend="handleDragEnd($event, item)" >
 </div>
</transition-group>

script:

<script>
export default {
 name: 'Toolbar',
 data () {
 return {
  items: [
  { key: 1, color: '#ffebcc'},
  { key: 2, color: '#ffb86c'},
  { key: 3, color: '#f01b2d'}
  ],
  
  dragging: null
 }
 },
 methods:{
 handleDragStart(e,item){
  this.dragging = item;
 },
 handleDragEnd(e,item){
  this.dragging = null
 },
 //首先把div变成可以放置的元素,即重写dragenter/dragover
 handleDragOver(e) {
  e.dataTransfer.dropEffect = 'move'// e.dataTransfer.dropEffect="move";//在dragenter中针对放置目标来设置!
 },
 handleDragEnter(e,item){
  e.dataTransfer.effectAllowed = "move"//为需要移动的元素设置dragstart事件
  if(item === this.dragging){
   return
  }
  const newItems = [...this.items]
  console.log(newItems)
  const src = newItems.indexOf(this.dragging)
  const dst = newItems.indexOf(item)
 
  newItems.splice(dst, 0, ...newItems.splice(src, 1))
 
  this.items = newItems
 }
 }
}
</script>
 
<style scoped>
 .container{
  width: 80px;
  height: 300px;
  position: absolute;
  left: 0;
  display:flex;
  flex-direction: column;
  padding: 0;
 }
 .item {
  margin-top: 10px;
  transition: all linear .3s
 }

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

Javascript 相关文章推荐
javascript实现unicode和字符的互相转换
Jul 18 Javascript
JavaScript onkeypress事件入门实例(按下或按住一个键盘按键)
Oct 17 Javascript
javascript中clone对象详解
Dec 03 Javascript
简单分析javascript面向对象与原型
May 21 Javascript
JavaScript判断表单中多选框checkbox选中个数的方法
Aug 17 Javascript
Jquery获取第一个子元素简单实例
Jun 02 Javascript
微信小程序 教程之注册程序
Oct 17 Javascript
Node.js中如何合并两个复杂对象详解
Dec 31 Javascript
JavaScript重复元素处理方法分析【统计个数、计算、去重复等】
Dec 14 Javascript
Vue 项目分环境打包的方法示例
Aug 03 Javascript
JavaScript常见JSON操作实例分析
Aug 08 Javascript
微信小程序可滑动周日历组件使用详解
Oct 21 Javascript
vue插件draggable实现拖拽移动图片顺序
Dec 01 #Javascript
vue.draggable实现表格拖拽排序效果
Dec 01 #Javascript
vuedraggable+element ui实现页面控件拖拽排序效果
Jul 29 #Javascript
Vue组件Draggable实现拖拽功能
Dec 01 #Javascript
BootStrap modal实现拖拽功能
Dec 01 #Javascript
vuejs2.0运用原生js实现简单拖拽元素功能
Aug 21 #Javascript
BootStrap table实现表格行拖拽效果
Dec 01 #Javascript
You might like
十天学会php之第五天
2006/10/09 PHP
php设计模式 Bridge (桥接模式)
2011/06/26 PHP
使用php判断服务器是否支持Gzip压缩功能
2013/09/24 PHP
PHP判断浏览器、判断语言代码分享
2015/03/05 PHP
php下载文件,添加响应头的简单实例
2016/09/22 PHP
php preg_match的匹配不同国家语言实例
2016/12/29 PHP
php根据用户名和手机号查询是否存在手机号码
2017/02/16 PHP
PHP设计模式之数据访问对象模式(DAO)原理与用法实例分析
2019/12/12 PHP
PHP code 验证码生成类定义和简单使用示例
2020/05/27 PHP
JTrackBar水平拖动效果
2007/07/15 Javascript
javascript自定义startWith()和endWith()的两种方法
2013/11/11 Javascript
判断字符串的长度(优化版)中文占两个字符
2014/10/30 Javascript
Javascript 实现图片无缝滚动
2014/12/19 Javascript
JS实现网页顶部向下滑出的全国城市切换导航效果
2015/08/22 Javascript
jQuery轻松实现表格的隔行变色和点击行变色的实例代码
2016/05/09 Javascript
jQuery 实现ajax传入参数含有特殊字符的方法总结
2016/10/17 Javascript
HTML5 js实现拖拉上传文件功能
2020/11/20 Javascript
react.js 翻页插件实例代码
2017/01/19 Javascript
详解使用create-react-app快速构建React开发环境
2018/05/16 Javascript
vue检测对象和数组的变化分析
2018/06/30 Javascript
JS使用遮罩实现点击某区域以外时弹窗的弹出与关闭功能示例
2018/07/31 Javascript
python自定义解析简单xml格式文件的方法
2015/05/11 Python
python实现爬虫统计学校BBS男女比例(一)
2015/12/31 Python
python+unittest+requests实现接口自动化的方法
2018/11/29 Python
Python玩转Excel的读写改实例
2019/02/22 Python
python之mock模块基本使用方法详解
2019/06/27 Python
python字符串切割:str.split()与re.split()的对比分析
2019/07/16 Python
Python socket聊天脚本代码实例
2020/01/02 Python
Python try except异常捕获机制原理解析
2020/04/18 Python
Python如何将装饰器定义为类
2020/07/30 Python
优秀干部获奖感言
2014/01/31 职场文书
元旦获奖感言
2014/03/08 职场文书
《独坐敬亭山》教学反思
2014/04/08 职场文书
2014教师党员自我评议(5篇)
2014/09/20 职场文书
家庭贫困证明范本(经典版)
2014/09/22 职场文书
宝塔更新Python及Flask项目的部署
2022/04/11 Python