HTML5ドラッグアンドドロップAPIを使用して、ドラッグアンドドロップ機能を追加します。
Webページにドラッグアンドドロップ機能を追加する方法は、HTML5のドラッグアンドドロップAPIを使用することです。これは、追加のライブラリなしでネイティブにサポートされています。特定の手順は次のとおりです。1。ドラッグを有効にするために要素draggable = "true"を設定します。 2。ドラッグスタート、ドラッグオーバー、ドロップ、ドラッグイベントを聞いてください。 3. Dragstartでデータを設定し、Dragoverのデフォルト動作をブロックし、ドロップのロジックを処理します。さらに、appendChildを通じて要素の動きを実現でき、ファイルアップロードはe.datatransfer.filesを使用して達成できます。注:ドロップをトリガーするには、Default()を呼び出す必要があります。モバイル側のサポートは不十分です。複雑なソートにサードパーティライブラリを使用することをお勧めします。
実際には、Webページにドラッグアンドドロップ機能を追加することは難しくありません。HTML5のドラッグアンドドロップAPIを使用して実現できます。ネイティブにサポートされており、追加のライブラリの導入を必要としません。ファイルのアップロードや要素ソートなどのインタラクションに適しています。

準備:ドラッグ可能な要素を設定します
要素をドラッグするには、最初にdraggable="true"
属性を追加します。たとえば、a <div>または画像をデフォルトでドラッグすることはできませんが、このプロパティを追加した後にドラッグイベントをトリガーできます。 <img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/175165462390139.jpeg" class="lazy" alt="HTML5ドラッグアンドドロップAPIを使用して、ドラッグアンドドロップ機能を追加します。"><pre class='brush:php;toolbar:false;'> <div draggable = "true">私をドラッグして試してみてください</div></pre><p>次に、いくつかの重要なイベントを聞く必要があります: <code>dragstart
、 dragover
、 drop
、 dragend
。これらのイベントは、スタートをドラッグし、ターゲット領域にドラッグし、マウスを解放し、端をドラッグするアクションに対応します。
ドラッグとドロップの基本的なプロセス
ドラッグアンドドロップ操作は、主に3つのステップに分割されます。

- ドラッグの開始:
dragstart
イベントでドラッグデータとエフェクトを設定します。 - ターゲットエリアにドラッグします:
dragover
のデフォルト動作をブロックすると、それ以外の場合はdrop
をトリガーできません。 - 無料配置:
drop
および完全なロジックのプロセスデータ。
たとえば、ボックスを別の領域にドラッグします。
const dragel = document.queryselector( '#drag'); const dropzone = document.queryselector( '#drop-zone'); dragel.addeventlistener( 'dragstart'、(e)=> { e.datatransfer.setdata( 'text/plain'、 'これはデータのドラッグ'); }); dropzone.addeventlistener( 'dragover'、(e)=> { E.PreventDefault(); //ドロップをトリガーするためにデフォルトの動作をブロックする必要があります }); dropzone.addeventlistener( 'drop'、(e)=> { const data = e.datatransfer.getData( 'text/plain'); console.log( '受信データ:'、data); });
これにより、最も基本的なドラッグアンドドロップインタラクションが完了します。
高度なドラッグアンドドロップ:要素またはファイルアップロードを移動します
テキストデータの渡しに加えて、ドラッグアンドドロップを使用してDOM要素を移動したり、ファイルをアップロードしたりすることもできます。
たとえば、要素をあるコンテナから別のコンテナにドラッグする場合は、 drop
時に新しい場所にノードを追加できます。
dropzone.addeventlistener( 'drop'、(e)=> { const id = e.datatransfer.getData( 'text/plain'); const draggedel = document.getElementById(ID); dropzone.appendchild(draggedel); });
ローカル画像をページにドラッグするなど、ファイルアップロードシナリオの場合、 e.dataTransfer.files
を介してファイルリストを取得できます。
dropzone.addeventlistener( 'drop'、(e)=> { const files = e.datatransfer.files; for(ファイルのファイルをlet){ if(file.type.startswith( 'image/')){ const reader = new fileReader(); reader.onload =()=> { const img = document.createelement( 'img'); img.src = reader.result; dropzone.appendChild(IMG); }; reader.readasdataurl(file); } } });
コードのこの部分は、画像をドラッグした後に直接プレビューできます。
メモとFAQ
HTML5ドラッグアンドドロップAPIを使用すると、いくつかの詳細が見過ごされがちです。
-
dragover
preventDefault()
を呼び出す必要があり、それ以外の場合はdrop
がトリガーされません - 異なるブラウザは、ドラッグやカーソルなどのドラッグアンドドロップスタイルに対して異なるサポートを提供する場合があります。
- ネイティブのドラッグアンドドロップのモバイルサポートはあまり良くなく、追加のタッチイベントが必要です
- 複雑なドラッグアンドドロップソートを実行したい場合は、サードパーティライブラリ(sortablejsなど)を組み合わせることを検討できます。
基本的にそれだけです。 HTML5のドラッグアンドドロップ関数は簡単ですが、使用後に良好な相互作用効果を生成する可能性もあります。
以上がHTML5ドラッグアンドドロップAPIを使用して、ドラッグアンドドロップ機能を追加します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

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

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

Stock Market GPT
AIを活用した投資調査により賢明な意思決定を実現

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

最初に非表示のオーディオ要素を作成し、カスタムコントロールUIを作成し、再生、一時停止、進行状況調整、ボリュームコントロールなどの関数をJavaScriptを介してオーディオAPIに接続して、完全にパーソナライズされたオーディオプレーヤーを実現します。

sseenablesseal-time、unidirectionalver-to-clientupdatesviahttp; useeventsourceinjavascripttoconnect、handlemessageswithonmessage、setserverresponsetypetotext/event-stream、formatdatawith "data:" and "and"&n "、andotionallalinalincludidsf

useSemantichtmlelementslikeandfornative focusableandkeyboardsupport.ensurelogicaltaboderandvisiblefocusindicatorsviacss.proglivealmatelymanagefocusindynamiccontentlikemodalselement.focus()、trappingfocusinsideandeandeandeandeturningItafterosurair.Applyar

theTimeElementInhtml5representsDatesSandTimesInamachine-ReadableFormat、EnhingAccessibilityandseo; usethedatetimeattribute withiso-formattedvaluestoprovidesemantivine、特に特に人間と対応するために、存在すること、保証されていることを保証します

ariaenhanceswebaccesibilitybyaddingsmantingtoelementswhentivenationhtmlisufficient.useariaroleslikerole = "button"、aria-expanded、andaria-labelforcustomcomponentsordynamiccontent、butalways-ferementive htmlementionsuchasbuttonav.update

usethepatternattributionhtml5inputelementStovalidateagainstaregex、sotsforpasswordsrequiringnumbers、上級、下皮、およびpairwithtitleforuserguidance and redquiredemptyentyencentyenceentyenceentyenceentyentyentyenced。

HTML5イメージマップを応答するようにするには、JavaScriptを介して動的に調整するか、CSSを使用してオーバーレイ要素を絶対に配置できます。最初に、画像自体が応答性があることを確認し、次にページの読み込みとウィンドウ調整のときにJavaScriptを介した元のサイズの比率に従ってエリアエリアの座標を再計算するか、透明なリンクを使用して画像をパーセンテージポジショニングでカバーして、クロスデバイスの適応を実現し、最終的にインタラクティブな領域が画像と正確にスケーリングされるようにします。 2つの方法には、適用可能なシナリオがあります。 JavaScriptソリューションは元の構造と互換性があり、CSSソリューションはより単純で、スクリプトは必要ありません。プロジェクトのニーズに従って選択する必要があり、両方ともマルチスクリーン効果をテストし、タッチエリアが十分に大きいことを確認する必要があります。複雑なマップの簡単なレイアウトにJavaScriptメソッドを使用することをお勧めします。

PDFを使用または埋め込みます。それはシンプルで直接的であり、代替コンテンツをサポートし、適切な互換性を持ち、境界から削除することができ、ニーズに応じて選択できます。
