複数の要素のコアデータ操作は簡単ですが(
の代わりに個別の配列を使用)、ユーザーインターフェイスの複雑さは大幅に増加します。 ネイティブのドラッグアンドドロップには後者が欠けているため、事前選択メカニズムとキーボードサポートに対処します。 注:タッチイベントとブラウザポリフィルは、この記事の範囲外です。 ソリューションは、Windowsを横切るのではなく、単一ページ内で作品を提示しました。dataTransfer
重要な改善:
複数のアイテムの選択とキーボードナビゲーションのためのhtml5のドラッグアンドドロップの拡張、アクセシビリティの向上。 アレイは、ドラッグ中に複数の要素を追跡し、IDが静的でない動的環境(CMSシステムなど)への統合を簡素化します。 キーボードのアクセシビリティは、ARIA属性(
、aria-grabbed
aria-dropeffect
基本的なドラッグアンドドロップ(簡略化された例):dragend
属性を使用します。アクセス可能なドラッグアンドドロップの実装:
アクセシビリティが最重要です。 ドラッグアンドドロップに関するARIAオーサリングプラクティスガイドラインを遵守します:aria-grabbed="false"
を使用し、キーボードに夢中です。aria-grabbed
は選択時に「真」になります。aria-dropeffect
m/command mを制御するか、ターゲット要素でドロップアクションを実行します。aria-dropeffect
aria-grabbed
複数の選択(マウスとキーボード):
コードは、ドラッグ可能な要素におよび
属性を追加します。マウスの選択では、(シングル/リセット)およびaria-grabbed
(削除/複数)を使用します。 キーボードの選択では、選択のためにSpaceBarを使用し、複数の選択の修飾子を処理します。 tabindex
プロパティは、選択が単一の容器に限定されることを保証します。 mousedown
、mouseup
、およびkeydown
関数は、選択状態を管理します
selections.owner
addSelection
選択のドラッグ(マウスとキーボード):removeSelection
clearSelections
は、有効なドロップターゲットを示すために使用されます。 キーボードインタラクションは、選択時にを追加します。 マウスの相互作用の場合、および
イベントは、イベントのバブルを処理するために変数とaria-dropeffect
関数を使用して、ホバー状態を管理します。 キーボードナビゲーションを改善するために、ターゲットコンテナ内のアイテムから削除されます。
aria-dropeffect="move"
dragenter
選択のドロップ(マウスとキーボード):dragleave
related
getContainer
tabindex
イベント(マウス)ドロップとリセットを処理します。 ブラウザの矛盾のため、
イベントを使用してドロップを処理し、リセットの問題を回避するためのフォーカスを管理します。 さらなる機能強化:
dragend
将来の改善には、タッチ/ポインターイベントサポート、ブラウザポリフィル、選択のソート、カスタマイズ可能なコピー/移動アクション、連続的な選択、カスタムドラッグゴースト、ドラッグ中の視覚的なキューが含まれます。 コードはgithub(元のテキストで提供されるリンク)で入手できます。drop
keydown
FAQSセクションでは、アクセス可能なドラッグアンドドロップ実装に関する一般的な質問に対する明確で簡潔な回答を提供し、複数の要素、滴下領域、注文制御、エラー処理、およびテストをカバーしています。
以上が複数のアイテムでアクセス可能なドラッグアンドドロップの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。