• div拖拽互换位置(vue)


    template模板

    <transition-group tag="div" class="container">
       <div class="item" v-for="(item,index) in items" :key="item.key" :style="{background:item.color,'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{
    		 80px;
    		height: 300px;
    		position: absolute;
    		left: 0;
    		display:flex;
    		flex-direction: column;
    		padding: 0;
    	}
    	.item {
    	  margin-top: 10px;
    	  transition: all linear .3s
    	}
    

      

  • 相关阅读:
    全栈工程师学习Linux技术的忠告
    实战CentOS系统部署Hadoop集群服务
    如何安装最新的 XFCE 桌面?
    scrapy爬虫框架(二)
    scrapy爬虫框架(一)
    数据结构与算法(二)
    IDEA 常用快捷键
    数据结构与算法(一)
    es6之模板字符串
    es6之箭头函数
  • 原文地址:https://www.cnblogs.com/xuxiaoxia/p/8405076.html
Copyright © 2020-2023  润新知