目次
準備:ドラッグ可能な要素を設定します
ドラッグとドロップの基本的なプロセス
高度なドラッグアンドドロップ:要素またはファイルアップロードを移動します
メモとFAQ
ホームページ ウェブフロントエンド H5 チュートリアル HTML5ドラッグアンドドロップAPIを使用して、ドラッグアンドドロップ機能を追加します。

HTML5ドラッグアンドドロップAPIを使用して、ドラッグアンドドロップ機能を追加します。

Jul 05, 2025 am 02:43 AM

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

HTML5ドラッグアンドドロップAPIを使用して、ドラッグアンドドロップ機能を追加します。

実際には、Webページにドラッグアンドドロップ機能を追加することは難しくありません。HTML5のドラッグアンドドロップAPIを使用して実現できます。ネイティブにサポートされており、追加のライブラリの導入を必要としません。ファイルのアップロードや要素ソートなどのインタラクションに適しています。

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;'> &lt;div draggable = &quot;true&quot;&gt;私をドラッグして試してみてください&lt;/div&gt;</pre><p>次に、いくつかの重要なイベントを聞く必要があります: <code>dragstartdragoverdropdragend 。これらのイベントは、スタートをドラッグし、ターゲット領域にドラッグし、マウスを解放し、端をドラッグするアクションに対応します。

ドラッグとドロップの基本的なプロセス

ドラッグアンドドロップ操作は、主に3つのステップに分割されます。

HTML5ドラッグアンドドロップAPIを使用して、ドラッグアンドドロップ機能を追加します。
  • ドラッグの開始dragstartイベントでドラッグデータとエフェクトを設定します。
  • ターゲットエリアにドラッグしますdragoverのデフォルト動作をブロックすると、それ以外の場合はdropをトリガーできません。
  • 無料配置dropおよび完全なロジックのプロセスデータ。

たとえば、ボックスを別の領域にドラッグします。

 const dragel = document.queryselector( &#39;#drag&#39;);
const dropzone = document.queryselector( &#39;#drop-zone&#39;);

dragel.addeventlistener( &#39;dragstart&#39;、(e)=> {
  e.datatransfer.setdata( &#39;text/plain&#39;、 &#39;これはデータのドラッグ&#39;);
});

dropzone.addeventlistener( &#39;dragover&#39;、(e)=> {
  E.PreventDefault(); //ドロップをトリガーするためにデフォルトの動作をブロックする必要があります
});

dropzone.addeventlistener( &#39;drop&#39;、(e)=> {
  const data = e.datatransfer.getData( &#39;text/plain&#39;);
  console.log( &#39;受信データ:&#39;、data);
});

これにより、最も基本的なドラッグアンドドロップインタラクションが完了します。

高度なドラッグアンドドロップ:要素またはファイルアップロードを移動します

テキストデータの渡しに加えて、ドラッグアンドドロップを使用してDOM要素を移動したり、ファイルをアップロードしたりすることもできます。

たとえば、要素をあるコンテナから別のコンテナにドラッグする場合は、 drop時に新しい場所にノードを追加できます。

 dropzone.addeventlistener( &#39;drop&#39;、(e)=> {
  const id = e.datatransfer.getData( &#39;text/plain&#39;);
  const draggedel = document.getElementById(ID);
  dropzone.appendchild(draggedel);
});

ローカル画像をページにドラッグするなど、ファイルアップロードシナリオの場合、 e.dataTransfer.filesを介してファイルリストを取得できます。

 dropzone.addeventlistener( &#39;drop&#39;、(e)=> {
  const files = e.datatransfer.files;
  for(ファイルのファイルをlet){
    if(file.type.startswith( &#39;image/&#39;)){
      const reader = new fileReader();
      reader.onload =()=> {
        const img = document.createelement( &#39;img&#39;);
        img.src = reader.result;
        dropzone.appendChild(IMG);
      };
      reader.readasdataurl(file);
    }
  }
});

コードのこの部分は、画像をドラッグした後に直接プレビューできます。

メモとFAQ

HTML5ドラッグアンドドロップAPIを使用すると、いくつかの詳細が見過ごされがちです。

  • dragover preventDefault()を呼び出す必要があり、それ以外の場合はdropがトリガーされません
  • 異なるブラウザは、ドラッグやカーソルなどのドラッグアンドドロップスタイルに対して異なるサポートを提供する場合があります。
  • ネイティブのドラッグアンドドロップのモバイルサポートはあまり良くなく、追加のタッチイベントが必要です
  • 複雑なドラッグアンドドロップソートを実行したい場合は、サードパーティライブラリ(sortablejsなど)を組み合わせることを検討できます。

基本的にそれだけです。 HTML5のドラッグアンドドロップ関数は簡単ですが、使用後に良好な相互作用効果を生成する可能性もあります。

以上がHTML5ドラッグアンドドロップAPIを使用して、ドラッグアンドドロップ機能を追加します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Stock Market GPT

Stock Market GPT

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

HTML5でカスタムコントロールを備えたオーディオプレーヤーを作成する方法は? HTML5でカスタムコントロールを備えたオーディオプレーヤーを作成する方法は? Sep 16, 2025 am 04:21 AM

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

HTML5でサーバーセントイベント(SSE)を使用する方法は? HTML5でサーバーセントイベント(SSE)を使用する方法は? Sep 21, 2025 am 06:11 AM

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

HTML5のアクセシビリティのためにフォーカスを管理する方法は? HTML5のアクセシビリティのためにフォーカスを管理する方法は? Sep 21, 2025 am 05:27 AM

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

HTML5で要素を適切に使用する方法は? HTML5で要素を適切に使用する方法は? Sep 17, 2025 am 06:33 AM

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

HTML5のアクセシビリティにARIAの役割を使用する方法は? HTML5のアクセシビリティにARIAの役割を使用する方法は? Sep 21, 2025 am 04:41 AM

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

HTML5の正規表現に対してフォームフィールドを検証する方法は? HTML5の正規表現に対してフォームフィールドを検証する方法は? Sep 22, 2025 am 05:11 AM

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

HTML5画像マップを応答する方法 HTML5画像マップを応答する方法 Sep 17, 2025 am 04:34 AM

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

HTML5ページにPDFドキュメントを埋め込む方法は? HTML5ページにPDFドキュメントを埋め込む方法は? Sep 21, 2025 am 05:08 AM

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

See all articles