使用sortablejs实现可拖动九宫格相册功能

本文介绍了如何利用SortableJS库在Vue项目中创建一个可拖动排序的九宫格相册。首先,通过npm安装SortableJS依赖,然后在HTML结构中设置九宫格图片视图,并在Vue的mounted生命周期钩子中初始化SortableJS,实现图片项的拖放排序功能。当拖动结束时,更新数据源以反映新的排序顺序,确保视图更新。
摘要由CSDN通过智能技术生成

提示:使用sortablejs实现可拖动九宫格相册功能


前言

使用sortablejs实现可拖动九宫格相册功能


一、效果图实现

在这里插入图片描述

二、代码实现

1.先安装依赖

代码如下(示例):

npm i sortablejs -S

2.结构分析

代码如下(示例):

<view class="cameraImg">
      <view v-for="(item, index) in fileList1" :key="index" class="data">
        <image :src="item.url" alt="" class="imgPic"></image>
      </view>
 </view>
//2. 在script里面导入一下,加入module="sortable" lang="renderjs"
<script module="sortable" lang="renderjs">
   import Sortable from "sortablejs";
</script>


 mounted () {
    this.initSortable();
  },

methods: {
    // 拖动
    initSortable() {
      this.el = document.querySelector('.cameraImg')
      this.sortable = Sortable.create(this.el, {
        sort: true, //是否可进行拖拽排序
        animation: 180, //动画时间
        // 允许被拖拽的类名
        draggable: '.data',
        onEnd: (evt) => {
          this.fileList1.splice(evt.newIndex, 0, this.fileList1.splice(evt.oldIndex, 1)[0])
          var newArray = this.fileList1.slice(0)
          this.fileList1 = [];// 必须有此步骤,不然拖拽后回弹
          this.$nextTick(function () {
             this.fileList1 = newArray;// 重新赋值,用新数据来刷新视图
          });
        },
      })
    },
  }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值