前端拖拽图片

该代码示例展示了如何在Vue.js应用中实现图片列表的拖放功能。利用dragstart、dragover和dragend事件,用户可以拖动图片并改变其在列表中的顺序。onDragOver方法更新目标图片源,onDragEnd方法处理图片位置交换。
摘要由CSDN通过智能技术生成

直接上代码吧,直接复制代码去调试
dragstart:当用户开始拖动一个元素或者一个选择文本的时候 dragstart 事件就会触发。

dragover:当元素或者选择的文本被拖拽到一个有效的放置目标上时,触发 dragover 事件。

dragend:拖放事件在拖放操作结束时触发。

<template>
  <div>
    <div v-if="imagesList && imagesList.length" class="image-list">
      <div
        v-for="(item,index) in imagesList"
        :key="index"
        class="drag-image-list"
        draggable="true"
      >
        <el-image
          :src="item"
          alt=""
          fit="cover"
          @dragover="onDragOver" @dragend="onDragEnd(index)"
        ></el-image>
      </div>
    </div>
  </div>
</template>

<script>
export default {
  name: 'draggable',
  data() {
    return {
      imagesList: ["https://aimkang.oss-cn-shanghai.aliyuncs.com/202301/20230109014639250_9c2cd14e-b8db-439b-87b9-8e54bf0ac7ff.jpg",
      "https://aimkang.oss-cn-shanghai.aliyuncs.com/202301/20230109014630841_9e3c7fe2-2b62-4d0e-964a-a7a4f3647c2b.png",
      "https://aimkang.oss-cn-shanghai.aliyuncs.com/202301/20230109014632757_a1832b10-7b5c-4194-97e7-db9cc12a1170.png",
      "https://aimkang.oss-cn-shanghai.aliyuncs.com/202301/20230109014634578_db794f5d-8d41-44eb-9c92-1ccb8a15c3f3.png",
      "https://aimkang.oss-cn-shanghai.aliyuncs.com/202301/20230109014636894_979d34c5-2b88-4a6d-a122-ac398cc29c34.png"],
      targetSrc: ''
    }
  },
  methods: {
   onDragOver(event) {
      event.preventDefault()
      const { src } = event.target
      this.targetSrc = src
    },
    onDragEnd(index) {
      const targetIdx = this.imagesList.indexOf(this.targetSrc);
      [this.imagesList[index], this.imagesList[targetIdx]] = [this.imagesList[targetIdx], this.imagesList[index]]
      this.imagesList = [...this.imagesList]
    }
  }
}
</script>

<style scoped lang="scss">
.image-list {
  display: flex;
  align-items: center;
  justify-content: center;
  .drag-image-list {
    .el-image {
      width: 148px;
      height: 148px;
      margin-right: 20px;
      cursor: pointer;
    }
  }
}
</style>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值