uni-app引入sortable列表拖拽,兼容App和H5,拖拽排序。

简介: uni-app引入sortable列表拖拽,兼容App和H5,拖拽排序。

背景:

作为一名前端开发人员,在工作中难免会遇到拖拽功能,分享一个github上一个不错的拖拽js库,能满足我们在项目开发中的需要,下面是我在uniapp中使用SortableJS的使用详细流程;


vue开发的web项目可以参考我的另一篇文章


Vue中拖动排序功能,引入SortableJs,前端拖动排序。

https://blog.csdn.net/weixin_64530670/article/details/132328122?spm=1001.2014.3001.5501


开始前先下载好Sortable至项目中,可直接下载min包,官方文档:

SortableJs中文文档

http://www.sortablejs.com


  1. sortable下载到本地  renderjs只支持H5和App-vue,不支持小程序和App-nvue开发
  2. 下载好后,在html代码处,找到你要拖拽排序的元素的父元素,给它设置一个id,我这边设置的就是'sort'  ,然后 给要拖拽的元素设置:data-id    它的作用是,决定了拖拽结束后返回给你一个怎样的数组,传item.id,它就会自动在拖拽结束后返回给你一个后排序好的id数组. 然后我们就可以拿去处理数据,发请求保存顺序啦!
<view class="appList" id="sort">
    <view class="appItem" v-for="(item,index) in usualist" :key='item.appId' :data-id="item.appId">
      <view class="remove" @tap="remove(item)">
        <u-icon name="minus-circle-fill"></u-icon>
      </view>
      <image class="img" :src='getimgUrl(item.overImgUrl)' v-if="Boolean(item.overImgUrl)"></image>
      <view class="first" v-else>
        {{getfirst(item.name)}}
      </view>
      <view class="appIntroduction">
        <text>{{item.name}}</text>
      </view>
      <view class="totop">
        <u-icon name="list"></u-icon>
      </view>
    </view>
  </view>
  1. css:
  .sort {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    &-item {
      width: 200rpx;
      height: 100rpx;
      display: flex;
      align-items: center;
      justify-content: center;
      border-radius: 15rpx;
      background: #f5f5f5;
      margin: 5rpx;
    }
  }
  1. js代码 再写一个script标签:
<script module='sortable' lang="renderjs">
import Sortable from 'static/Sortable.min.js'
export default {
  mounted() {
    this.initSortable()
  },
  methods: {
    initSortable() {
      if (typeof window.Sortable === 'function') {
        this.setSortable()
      } else {
        const script = document.createElement('script')
        script.src = '/static/Sortable.min.js'
        script.onload = this.setSortable.bind(this)
        document.head.appendChild(script)
        }
      },
    setSortable() {
      let option = {
        animation: 150,
        delay:300,
        onEnd: (e) => {
          // 拖拽完成后回调
          this.$ownerInstance.callMethod('changeSort', sortable.toArray());
        }
      }
      let sortable = Sortable.create(document.getElementById('sort'), option);
    },
  }
}
</script>


以上代码中,在执行完拖拽后会执行changeSort方法,这个方法需要写到原本的那个script中:


changeSort(e) {
  console.log(e)
  this.flag = true
  this.updatelist = e.join(',')
  },

拖拽后打印出来的e就是有已经排序好的每一项的id组成的数组。


相关文章
|
17天前
|
JSON 数据格式
《仿盒马》app开发技术分享-- 分类右侧商品列表(18)
上一节我们实现了分类页左侧二级分类列表功能,并实现了顶部列表&弹窗跟左侧列表的联动,这一节我们需要在它们联动的基础上继续添加右侧列表的联动效果
23 4
|
17天前
|
JSON 数据挖掘 数据格式
《仿盒马》app开发技术分享-- 分类左侧列表(17)
上一节我们实现了分类页面的顶部导航栏全选弹窗列表,并实现了跟顶部列表的点击选中联动效果,这一节我们要实现的功能是,分类模块的左侧列表,它同样也需要跟弹窗列表的点击,顶部列表的点击有联动的效果
24 4
|
17天前
《仿盒马》app开发技术分享-- 分类模块顶部导航列表弹窗(16)
上一节我们实现了分类页面的顶部导航栏列表,并且实现了首页金刚区跟首页导航栏的联动,这一节我们实现导航栏列表的弹窗功能,需要学习的知识点有自定义弹窗,同时我们的数据源需要跟分类页保持一一致。
17 1
|
17天前
|
JSON 前端开发 数据挖掘
《仿盒马》app开发技术分享-- 分类模块顶部导航列表(15)
上一节我们实现了购物车商品列表的大部分功能,实现了商品的添加、删除、增减、价格计算等业务,并且都跟云端进行通信。现在我们继续对项目进行改造,这一节我们要改造的内容是分类页,这个页面我们在之前的非端云一体化项目中实现过。现在要改造成端云一体的模式,并且我们的金刚区也要实现分类页的点击联动
18 0
|
17天前
|
JSON 前端开发 数据格式
《仿盒马》app开发技术分享-- 加入购物车&加购列表展示(12)
上一节我们实现了商品详情页面的规格选择弹窗,这在任何购物类应用中都是最常用的功能之一。当然了,作为一个购物类的应用,我们仅仅展示是用处不大的,我们还需要有添加的动作。这一节我们就来实现添加到购车里并且在购物车内简单展示的功能
16 0
|
2月前
|
存储 人工智能 移动开发
uni-app+vue3接入deepseek-v3搭建跨端ai流式(小程序+app+h5)
基于Uniapp+Vue3+Markdown接入DeepSeek-V3聊天大模型,支持编译到H5+小程序+App端。实现流式输出、支持亮色/暗黑主题、代码高亮、会话本地存储等功能。
419 12
|
5月前
|
Dart 前端开发 Android开发
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
111 4
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
6月前
|
移动开发 小程序
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
184 0
|
3月前
|
人工智能 JSON 小程序
【一步步开发AI运动APP】七、自定义姿态动作识别检测——之规则配置检测
本文介绍了如何通过【一步步开发AI运动APP】系列博文,利用自定义姿态识别检测技术开发高性能的AI运动应用。核心内容包括:1) 自定义姿态识别检测,满足人像入镜、动作开始/停止等需求;2) Pose-Calc引擎详解,支持角度匹配、逻辑运算等多种人体分析规则;3) 姿态检测规则编写与执行方法;4) 完整示例展示左右手平举姿态检测。通过这些技术,开发者可轻松实现定制化运动分析功能。