目次
ユニアプリのドラッグ アンド ドロップによる並べ替え
ホームページ ウェブフロントエンド uni-app uni-app+sortable.js はドラッグ アンド ドロップの並べ替えをどのように実装しますか?ステップ共有

uni-app+sortable.js はドラッグ アンド ドロップの並べ替えをどのように実装しますか?ステップ共有

Nov 24, 2021 pm 07:49 PM
uni-app ドラッグアンドドロップで並べ替え

Uni-App でドラッグ アンド ドロップの並べ替えを実装するにはどうすればよいですか?以下の記事では、sortable.jsを使ってuni-appでドラッグ&ドロップソートを実装する方法を紹介しますので、ご参考になれば幸いです。

uni-app+sortable.js はドラッグ アンド ドロップの並べ替えをどのように実装しますか?ステップ共有

ユニアプリのドラッグ アンド ドロップによる並べ替え

序文

これを作成しますページ上には文字ソート機能があり、手動でドラッグしてソート位置を変更できます。検索した結果、このドラッグ アンド ドロップ機能を実装するために使用できる

sortable.js を見つけました。

感想

sortable.jsの公式ドキュメントを見ていると、 onUpdate 内の イベントでは、ドラッグして位置を変更した後、戻り値に開始インデックス値と変更後のインデックス値が含まれており、これにより配列の内容を変更して、ドラッグ後に位置を変更する機能を実現できます。 。

#手順

インストールsortable.js#

npm install sortablejs --save-dev
ログイン後にコピー

ノードの取得

ここで取得したノードは、リストにドラッグする必要がある親ノードです

let uls = document.getElementById('list')
ログイン後にコピー

ノードの読み込み

 new Sortable(uls,{})
ログイン後にコピー

TriggeronUpdate<span style="font-size: 18px;"></span>Eventというのも、その過程で次のことが分かりました。 domノードの位置を利用して操作すると項目の順序を変更する際にバグが発生するので情報を探した結果、

VueのSortable

を使用することで問題を発見しました。項目の順序に従って、最初に対応するノードを変更する必要があります。

ノードの変更

最初に移動したノードを削除してから、移動したノードを元のノードに挿入します

newLi = uls.children[newIndex],  //移动节点
oldLi = uls.children[oldIndex];  //原有节点
uls.removeChild(newLi) // 删除移动的节点
uls.insertBefore(newLi, oldLi) // 将移动节点插入到原有节点中
ログイン後にコピー

注: ドラッグするときから変更するときは上下に移動すると、ノードが 1 つ追加されるため、元のインデックス値は 1 つ減ります。

newIndex < oldIndex

の場合、oldLi ノードの次のノードが使用されます。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>uls.insertBefore(newLi, oldLi.nextSibling)</pre><div class="contentsignin">ログイン後にコピー</div></div>

配列を変更します

元の配列を削除してデータを保存します

let item = _this.items.splice(oldIndex, 1)
ログイン後にコピー

残りの配列インデックス値にデータを追加します

_this.items.splice(newIndex, 0, item[0])
ログイン後にコピー

完全なコード

let uls = document.getElementById(&#39;list&#39;)
    new Sortable(uls, {
      onUpdate: function (event) {
        //获得基础数据
        let newIndex = event.newIndex,
          oldIndex = event.oldIndex,
          newLi = uls.children[newIndex],
          oldLi = uls.children[oldIndex];
        // 删除原有节点
        uls.removeChild(newLi)
        // 将移动的节点插入原有节点中
        if (newIndex > oldIndex) {
          uls.insertBefore(newLi, oldLi)
        } else {
          uls.insertBefore(newLi, oldLi.nextSibling)
        }
        // 修改数组
        let item = _this.items.splice(oldIndex, 1)
        _this.items.splice(newIndex, 0, item[0])
      },
ログイン後にコピー
推奨: 「uniappチュートリアル

以上がuni-app+sortable.js はドラッグ アンド ドロップの並べ替えをどのように実装しますか?ステップ共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

VSCode でユニアプリを開発するにはどうすればよいですか? (チュートリアルの共有) VSCode でユニアプリを開発するにはどうすればよいですか? (チュートリアルの共有) May 13, 2022 pm 08:11 PM

VSCode でユニアプリを開発するにはどうすればよいですか?次の記事では、VSCode でのユニアプリ開発に関するチュートリアルを紹介します。これは、おそらく最も詳細なチュートリアルです。ぜひ見に来てください!

VueとElement-UIを使ってドラッグ&ドロップソート機能を実装する方法 VueとElement-UIを使ってドラッグ&ドロップソート機能を実装する方法 Jul 22, 2023 pm 04:12 PM

Vue と Element-UI を使用してドラッグ アンド ドロップの並べ替え機能を実装する方法 はじめに: Web 開発では、ドラッグ アンド ドロップの並べ替え機能は一般的で実用的な機能です。この記事では、Vue と Element-UI を使用してドラッグ アンド ドロップの並べ替え機能を実装する方法を紹介し、コード例を通して実装プロセスを示します。 1. 環境設定とNode.jsのインストール 開始する前に、Node.jsをインストールする必要があります。 https://nodejs.org/ にアクセスして、オペレーティング システムに対応するバージョンをダウンロードしてインストールできます。 VueCLをインストールする

uniapp を使用してシンプルなマップ ナビゲーションを開発する uniapp を使用してシンプルなマップ ナビゲーションを開発する Jun 09, 2022 pm 07:46 PM

uniapp を使用してシンプルなマップ ナビゲーションを開発するにはどうすればよいですか?この記事では簡単な地図の作り方を紹介しますので、ぜひ参考にしてください。

vue と Element-plus を使用してドラッグ アンド ドロップと並べ替え機能を実装する方法 vue と Element-plus を使用してドラッグ アンド ドロップと並べ替え機能を実装する方法 Jul 17, 2023 pm 09:02 PM

vue と Element-plus を使用してドラッグ アンド ドロップと並べ替え機能を実装する方法 はじめに: 現代の Web 開発では、ユーザー インタラクション エクスペリエンスがますます重要になっています。ドラッグ アンド ドロップおよび並べ替え機能は、ユーザーが要素を簡単に並べ替えたり、要素の位置を調整したりできる一般的な対話型操作です。この記事では、Vue ライブラリと Element-plus ライブラリを使用してドラッグ アンド ドロップ機能と並べ替え機能を実装する方法を紹介し、対応するコード例を示します。技術的な準備: Vue および Element-plus 関連のコードの作成を開始するには、

uniapp を使用してスネーク ゲームを開発する方法について話しましょう。 uniapp を使用してスネーク ゲームを開発する方法について話しましょう。 May 20, 2022 pm 07:56 PM

uniapp を使用してスネーク ゲームを開発するにはどうすればよいですか?次の記事では、Uniapp に Snake ゲームを実装する手順を段階的に説明します。お役に立てば幸いです。

ユニアプリ カレンダー プラグインを開発 (および公開) する手順を段階的に説明します。 ユニアプリ カレンダー プラグインを開発 (および公開) する手順を段階的に説明します。 Jun 30, 2022 pm 08:13 PM

この記事では、ユニアプリ カレンダー プラグインの開発をステップごとに説明し、次期カレンダー プラグインの開発からリリースまでの手順を紹介します。

uni-app vue3 インターフェイスリクエストをカプセル化する方法 uni-app vue3 インターフェイスリクエストをカプセル化する方法 May 11, 2023 pm 07:28 PM

uni-app インターフェイス、グローバル メソッドのカプセル化 1. ルート ディレクトリに API ファイルを作成し、API フォルダーに api.js、baseUrl.js、および http.js ファイルを作成します。 2.baseUrl.js ファイル コード exportdefault"https://XXXX .test03.qcw800.com/api/"3.http.js ファイル コードexportfunctionhttps(opts,data){lethttpDefaultOpts={url:opts.url,data:data,method:opts.method

uniapp が複数選択ボックスの全選択機能を実装する方法を説明する例 uniapp が複数選択ボックスの全選択機能を実装する方法を説明する例 Jun 22, 2022 am 11:57 AM

この記事では、uniapp に関する関連知識を提供します。主に、複数選択ボックスの全選択機能の実装に関する問題を整理します。全選択機能が実装できない理由は、チェックボックスのチェックされたフィールドがオンになっている場合です。動的に変更されると、インターフェイス上のステータスはリアルタイムに変更されますが、checkbox-group の変更イベントはトリガーされません。

See all articles