国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

vue實現div拖拽互換位置

2024-05-06 16:47:24
字體:
來源:轉載
供稿:網友

本文實例為大家分享了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  }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 肃南| 衡山县| 木兰县| 玉林市| 原阳县| 雷州市| 右玉县| 文山县| 抚州市| 万山特区| 康定县| 龙川县| 托克逊县| 花莲市| 肥东县| 察雅县| 东光县| 永年县| 北京市| 岑溪市| 台山市| 剑阁县| 兴安盟| 海南省| 商水县| 固阳县| 西昌市| 勐海县| 巴楚县| 宁化县| 峨山| 和田市| SHOW| 柯坪县| 时尚| 哈巴河县| 谢通门县| 浦城县| 庆云县| 甘谷县| 莱西市|