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

效果:

拖拽排序

背景:

作為一名前端開發人員,在工作中難免會遇到拖拽功能,分享一個github上一個不錯的拖拽js庫,能滿足我們在項目開發中的需要,下面是我在uniapp中使用SortableJS的使用詳細流程;?

vue開發的web項目可以參考我的另一篇文章

Vue中拖動排序功能,引入SortableJs,前端拖動排序。icon-default.png?t=N6B9https://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>

  3. 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;}}

  4. 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 = truethis.updatelist = e.join(',')},

    拖拽后打印出來的e就是有已經排序好的每一項的id組成的數組。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/39894.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/39894.shtml
英文地址,請注明出處:http://en.pswp.cn/news/39894.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Centos7安裝docker后默認開啟docker0的網卡|卸載默認網卡

一&#xff1a; 停掉服務 systemctl stop docker [rootwww ~]# systemctl stop docker [rootwww ~]# systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor prese…

神經網絡基礎-神經網絡補充概念-27-深層網絡中的前向傳播

概念 深層神經網絡中的前向傳播是指從輸入數據開始&#xff0c;逐層計算每個神經元的輸出值&#xff0c;直到得到最終的預測值。 一般步驟 1輸入數據傳遞&#xff1a; 將輸入數據傳遞給網絡的輸入層。輸入數據通常是一個特征矩陣&#xff0c;每一列代表一個樣本&#xff0c;…

【bug】Unity無法創建項目

bug UnityHub無法創建項目 UnityHub無法創建項目 出現的問題&#xff1a;在創建新項目時彈出來一個 無法創建項目 嘗試的方法&#xff1a; 刷新許可證 ?沒用退出賬號重新登陸 ?沒用重啟電腦 ?沒用 最后發現是什么問題呢&#xff1f; 2021.3.3這個版本我之前在資源管理器中…

SpringBoot概述及項目的創建使用

文章目錄 一. Spring Boot概述1. 什么是Spring Boot&#xff1f;2. Spring Boot的優點 二. Spring Boot項目的創建1. 使用IDEA創建1.1. 準備工作1.2. 創建運行Spring Boot項目1.3. 進行Web交互1.4. 目錄工程介紹1.5. 項目快速添加依賴1.6. 防止配置文件亂碼所需的配置1.7. Spri…

Docker實戰專欄簡介

&#x1f337;&#x1f341; 博主貓頭虎 帶您 Go to New World.?&#x1f341; &#x1f984; 博客首頁——貓頭虎的博客&#x1f390; &#x1f433;《面試題大全專欄》 文章圖文并茂&#x1f995;生動形象&#x1f996;簡單易學&#xff01;歡迎大家來踩踩~&#x1f33a; &a…

【iMessage蘋果推?IM推送】群控腳本當Apple APNS推送服務器從您的應用程序接吸收注冊消息時,它將為您回到一串devicetoken

推薦內容IMESSGAE相關 作者??IMEAE推薦內容iMessage蘋果推軟件 *** 點擊即可查看作者要求內容信息作者??IMEAE推薦內容1.家庭推內容 *** 點擊即可查看作者要求內容信息作者??IMEAE推薦內容2.相冊推 *** 點擊即可查看作者要求內容信息作者??IMEAE推薦內容3.日歷推 *** …

Rust軟件外包開發語言的特點

Rust 是一種系統級編程語言&#xff0c;強調性能、安全性和并發性的編程語言&#xff0c;適用于廣泛的應用領域&#xff0c;特別是那些需要高度可靠性和高性能的場景。下面和大家分享 Rust 語言的一些主要特點以及適用的場合&#xff0c;希望對大家有所幫助。北京木奇移動技術有…

MongoDB:簡單的增刪改查操作

一.概述 本篇文章介紹在Navicat中對MongoDB數據庫進行增刪改查操作,在后面會介紹在Spring Boot中使用MongoTemplate對MongoDB數據庫進行相關操作.如有必要可以先看看前面幾篇文章. MongoDB:MySQL,Redis,ES,MongoDB的應用場景 MongoDB:數據庫初步應用 二.在Navicat進行增刪改…

linux系統服務學習(七)NFS服務、DHCP服務

文章目錄 一、NFS服務概述1、任務背景2、環境準備3、NFS概述4、NFS組成5、與NFS相關的軟件包6、安裝NFS軟件7、NFS的配置文件 二、NFS實驗1、搭建NFS服務器2、編寫NFS主配置文件3、啟動相關的NFS服務4、搭建Web服務器5、在Web服務器中掛載NFS6、上傳aws.mp4視頻到NFS服務器的/s…

人工智能學習框架—飛槳Paddle人工智能

1.人工智能框架 機器學習的三要素&#xff1a;模型、學習策略、優化算法。 當我們用機器學習來解決一些模式識別任務時&#xff0c;一般的流程包含以下幾個步驟&#xff1a; 1.1.淺層學習和深度學習 淺層學習(Shallow Learning)&#xff1a;不涉及特征學習&#xff0c;其特征…

Vue3 setup中使用$refs

在 Vue 3 中的 Composition API 中&#xff0c;$refs 并不直接可用于 setup 函數。這是因為 $refs 是 Vue 2 的實例屬性&#xff0c;而在 Vue 3 中&#xff0c;setup 函數是與模板實例分離的&#xff0c;不再使用實例屬性。 實際工作中確實有需求&#xff0c;在setup 函數使用…

迪瑞克斯拉算法

迪銳克斯拉算法 簡單來說就是在有向圖中&#xff0c;給定一個圖中具體的出發點&#xff0c;從這個點出發能夠到達的所有的點&#xff0c;每個點的最短距離是多少。到不了的點&#xff0c;距離則是正無窮。有向&#xff0c;無負權重&#xff0c;可以有環。 所以說&#xff0c;迪…

流媒體服務-傳輸延時(SEI插幀)

什么是延時 很多小伙伴認為&#xff0c;當推流端和拉流端顯示的時間不一致&#xff0c;即為延時。 其實這種看法是比較片面的&#xff0c;不同的播放器&#xff0c;對同一路流進行測試&#xff0c;可能會得到不同的結果。 一般來說&#xff0c;延時為以下幾個部分的累加組成 …

【Android】解決Lint found fatal errors while assembling a release target

報錯信息&#xff1a; Android在debug模式下打包沒有問題&#xff0c;但是在打包release版本時出現一下問題&#xff1a; 結果圖 原因 我項目的原因是因為把正式、測試地址放到代碼里了&#xff0c;忘記選中正式環境的地址&#xff0c;導致打正式包有問題&#xff1b;大家如果…

Shell編程學習之變量的使用

查看當前系統使用的命令解釋器&#xff1a; linuxubuntu:~$ echo $SHELL /bin/bashshell命令&#xff1a;在終端上使用的命令&#xff0c;例如 vi a.cgcc a.c./a.outshell腳本&#xff1a;其是一個.sh文件&#xff0c;里面都是命令的集合&#xff0c;以及一些復雜的邏輯&#…

RuntimeException詳解

當我們談論Java編程中的異常處理時&#xff0c;RuntimeException是一個關鍵的概念&#xff0c;它在代碼開發和維護中扮演著重要的角色。本文將深入探討RuntimeException&#xff0c;了解它的特點、使用場景以及如何在代碼中處理它。 什么是RuntimeException&#xff1f; 在Ja…

復合 類型

字符串和切片 切片 切片的作用是允許你引用集合中部分連續的元素序列&#xff0c;而不是引用整個集合。 例如&#xff1a; let s String::from("hello world");let hello &s[0..5]; // 切片 [0,5) 等效于&s[..5] let world &s[6..11]; // 切片…

線性動態規劃入門之挖地雷

P2196 [NOIP1996 提高組] 挖地雷 - 洛谷 | 計算機科學教育新生態 (luogu.com.cn) 這個題有點坑&#xff0c;就是說你只能往下挖&#xff0c;可以理解成單項路徑。比如1與3之間是1代表1可以到3而3不可以到1。所以我們來思考dp把。怎么寫&#xff1f;我們這么想假設1與2&#xf…

gitee上傳一個本地項目到一個空倉庫

gitee上傳一個本地項目到一個空倉庫 引入 比如&#xff0c;你現在本地下載了一個半成品的框架&#xff0c;現在想要把這個本地項目放到gitee的倉庫上&#xff0c;這時就需要我們來做到把這個本地項目上傳到gitee上了。 具體步驟 1. 登錄碼云 地址&#xff1a;https://gite…

【Pytroch】基于支持向量機算法的數據分類預測(Excel可直接替換數據)

【Pytroch】基于支持向量機算法的數據分類預測(Excel可直接替換數據) 1.模型原理2.數學公式3.文件結構4.Excel數據5.下載地址6.完整代碼7.運行結果1.模型原理 支持向量機(Support Vector Machine,SVM)是一種強大的監督學習算法,用于二分類和多分類問題。它的主要思想是找…