検索
ホームページウェブフロントエンドH5 チュートリアルHTML5 要素のドラッグ アンド ドロップ (画像とテキスト) に関連する API の詳細な紹介

実際、HTML5 にはいくつかの便利な API が追加されているだけです
より簡単に開発できるようになります
ビジネス ロジックにもっと集中できるようにします
これらの API の使用も非常に簡単です
でも私の記憶力はあまり良くありません
だから私は今でもブログに記録していますという形で(マニュアル面白い)
今日はこのドラッグアンドドロップAPIについて書いてみましょう

デフォルトのドラッグ

ドラッグアンドドロップと言えば、実はドラッグアンドドロップ機能の最初の実装はIE(IE4)でした
H5がベースになっていますIEインスタンス上で指定されたドラッグアンドドロップの仕様
ブラウザではデフォルトのドラッグアンドドロップがあります
例えば画像のドラッグアンドドロップ

選択されたテキストのドラッグアンドドロップ

リンクのドラッグアンドドロップ

要素のドラッグ

ブラウザではデフォルトで画像、テキスト、リンクをドラッグできます
他の要素をドラッグすることも可能です
要素タグに属性を追加するだけです

<p draggable="true"></p>

この要素をドラッグすると、ブラウザーに半透明のコピーとして表示されます

ドラッグイベント

ドラッグイベントは2つのカテゴリに分類する必要があります
1つのタイプは、ドラッグされた要素によってトリガーされるイベントです
もう1つのタイプは、トリガーされるイベントですターゲット要素をドラッグすることで

<p id="source" draggable="true"></p><p id="target"></p>  <!-- 样式略 -->
var source = document.getElementById(&#39;source&#39;);var target = document.getElementById(&#39;target&#39;);

要素をドラッグする

要素をドラッグすると、ドラッグされた要素によって次のイベントがトリガーされます

  • drag

  • dラージェンド

  • マウスが要素をクリックすると、移動を開始すると、dragstart イベントがトリガーされます (mousedown に似ています) ドラッグ イベントは、ドラッグプロセス中に継続的にトリガーされます (mousemove に似ています)

    マウスを放してキャンセルするとドラッグすると、dragend イベントがトリガーされます (mouseup に似ています)
  • source.ondragstart = function(){
      console.log(&#39;开始拖拽&#39;);
    }source.ondrag = function(){
      console.log(&#39;拖拽中&#39;);
    }source.ondragend = function(){
      console.log(&#39;拖拽结束&#39;);
    }



ターゲット要素

ドラッグされた要素がターゲット要素上にドラッグされると、ターゲット要素は次のイベントをトリガーします

drangeter

  • dragover

  • dragleave

  • drop

  • 要素をターゲットにドラッグすると、dragenter イベントがトリガーされます (マウスオーバーと同様) ドラッグした要素がターゲット要素内では、dragover イベントが引き続きトリガーされます

    ターゲット要素を離れると、dragleave イベントがトリガーされます (マウスオーバーと同様)、mouseout)
  • 要素がターゲット要素にドラッグ アンド ドロップされた場合 (マウスを放します)ターゲット要素) の場合、dragleave イベントの代わりにドロップ イベントがトリガーされます
target.ondragenter = function(){
  console.log(&#39;拖动进入目标元素&#39;);
}target.ondragover = function(){
  console.log(&#39;目标元素中拖拽&#39;);
}target.ondragleave = function(){
  console.log(&#39;拖动离开目标元素&#39;);
}target.ondrop = function(){
  console.log(&#39;拖放&#39;);
}




この時点で、要素がターゲット要素にドラッグ アンド ドロップされたことがわかります

ドロップ イベントがトリガーされなかった場合



特別なカーソル (円 + バックスラッシュ) が表示されました

これは、無効なドラッグ アンド ドロップを意味します

したがって、ドロップ イベントはトリガーされません これは、デフォルトの要素がドラッグ アンド ドロップできないことを意味します

ターゲット要素のドラッグオーバーイベント

のデフォルトイベント
で、問題は解決できます

target.ondragover = function(e){
  console.log(&#39;目标元素中拖拽&#39;);
  e.preventDefault(); //增}

データ交換
単純なドラッグアンドドロップでは意味がありませんデータ交換を行う必要があります

そして、この用語のデータ交換オブジェクトはイベントオブジェクトの属性

dataTransfer

dataTransfer の 2 つのコアメソッドは setData() と getData() です
setData() はデータの設定に使用され、getData() はデータの受信に使用されます

event.dataTransfer.setData(&#39;text&#39;,&#39;some text&#39;);
var text = event.dataTransfer.getData(&#39;text&#39;);//保存在dataTransfer中的数据只能在drop事件处理函数中处理
text その後、ブラウザはデフォルトで dataTransfer.setData を呼び出し、対応するテキスト データを設定します

setData() と getData() はデータ型の文字列です

"text" テキスト タイプに加えて、IE によって定義されるデータ型も"URL" を含めます

H5 ペア さまざまな MIME タイプを指定するために拡張されました
ただし、下位互換性のために、「text」と「URL」もサポートします

それらは「text/plain」と「text/uri-list」にマッピングされます"それぞれ


データが URL として保存されている場合、ブラウザは特別な処理を実行し、それを Web リンクとして扱います
(そのため、リンクを別のブラウザ ウィンドウにドラッグすると Web ページが開きます)

必要に応じて、転送する必要のあるデータを手動で保存します

var source = document.getElementById(&#39;source&#39;);var target = document.getElementById(&#39;target&#39;);
source.ondragstart = function(e){
  e.dataTransfer.setData('text','传递文本数据');
}
target.ondragover = function(e){
  e.preventDefault();
}
target.ondrop = function(e){
  console.log(e.dataTransfer.getData('text'));
}


ドラッグ設定

dataTransfer には 2 つの重要な属性があります

dropEffect

effectAllowed


dropEffectdropEffect 属性値は文字列であり、どちらのタイプであるかを示します実行の際、ドラッグされた要素は配置動作を実行できます この属性を使用するには、dragenter イベント ハンドラーで設定する必要があります

none 要素をここにドラッグ アンド ドロップすることはできません (テキスト ボックスを除くすべての要素のデフォルト値)

  • move ターゲットに移動

  • copy ターゲットにコピー

  • リンク ターゲットはドラッグ要素を開きます (ドラッグ要素はリンクであり、URL が必要です)

effectAllowed

effectAllowed 属性値も文字列であり、どの DropEffect が要素のドラッグを許可されているかを示します
使用するにはこの属性は

  • にある必要があります。ドラッグ アンド ドロップ動作は設定されていません。

  • move は、dropEffect 値のみを使用できます。 move

  • copyLinkでdropEffect値のコピーとリンクが可能

  • copyMoveでdropEffect値のコピーと移動が可能

  • linkMoveでdropEffect値のリンクと移動が可能

  • all 任意のdropEffectを許可

以上がHTML5 要素のドラッグ アンド ドロップ (画像とテキスト) に関連する API の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
H5コード構造:読みやすさのためのコンテンツの整理H5コード構造:読みやすさのためのコンテンツの整理May 07, 2025 am 12:06 AM

合理的なH5コード構造により、ページは多くのコンテンツの中で際立っています。 1)コンテンツなどのセマンティックラベルを使用して、構造を明確にするためにコンテンツを整理します。 2)FlexBoxやグリッドなどのCSSレイアウトを介して、さまざまなデバイスでのページのレンダリング効果を制御します。 3)レスポンシブデザインを実装して、ページがさまざまな画面サイズに適応するようにします。

H5対古いHTMLバージョン:比較H5対古いHTMLバージョン:比較May 06, 2025 am 12:09 AM

HTML5(H5)以降のバージョンのHTMLの主な違いには、次のものが含まれます。1)H5はセマンティックタグを導入し、2)マルチメディアコンテンツをサポートし、3)オフラインストレージ機能を提供します。 H5は、新しいタグやタグなどのAPIを介してWebページの機能と表現力を高め、ユーザーエクスペリエンスやSEO効果を改善しますが、互換性の問題に注意を払う必要があります。

H5対HTML5:用語と関係を明確にするH5対HTML5:用語と関係を明確にするMay 05, 2025 am 12:02 AM

H5とHTML5の違いは次のとおりです。1)HTML5は、構造とコンテンツを定義するWebページ標準です。 2)H5は、迅速な開発とマーケティングに適したHTML5に基づくモバイルWebアプリケーションです。

HTML5機能:H5のコアHTML5機能:H5のコアMay 04, 2025 am 12:05 AM

HTML5のコア機能には、セマンティックタグ、マルチメディアサポート、フォームエンハンスメント、オフラインストレージ、ローカルストレージが含まれます。 1。コードの読みやすさやSEO効果を改善するなどのセマンティックタグ。 2.マルチメディアサポートは、メディアコンテンツを埋め込むプロセスとタグを簡素化します。 3.フォームエンハンスメント新しい入力タイプと検証プロパティを導入し、フォーム開発を簡素化します。 4.オフラインストレージとローカルストレージは、ApplicationCacheとLocalStorageを通じてWebページのパフォーマンスとユーザーエクスペリエンスを改善します。

H5:HTMLの最新バージョンの探索H5:HTMLの最新バージョンの探索May 03, 2025 am 12:14 AM

html5isamajorrevision ofhtmlstandardthatedatedatizeizeswebdevelovement byintunwingnewsemanticelementsandcapabilities.1)itenhancesscodereadability and.2)html5EnableSricher、InteractiveEnceEnceEnceEncedienceEnceDirectembe、and.2)

基本を超えて:H5コードの高度な手法基本を超えて:H5コードの高度な手法May 02, 2025 am 12:03 AM

H5の高度なヒントには以下が含まれます。1。複雑なグラフィックスを使用して描画します。2。ウェブワーカーを使用してパフォーマンスを向上させます。これらのヒントは、開発者がよりダイナミックでインタラクティブで効率的なWebアプリケーションを構築するのに役立ちます。

H5:Webコンテンツとデザインの未来H5:Webコンテンツとデザインの未来May 01, 2025 am 12:12 AM

H5(HTML5)は、新しい要素とAPIを介してWebコンテンツと設計を改善します。 1)H5はセマンティックタグ付けとマルチメディアサポートを強化します。 2)キャンバスとSVGを導入し、Webデザインを濃縮します。 3)H5は、新しいタグとAPIを介してHTML機能を拡張することにより機能します。 4)基本的な使用には、それを使用したグラフィックの作成が含まれ、高度な使用法にはwebstorageapiが含まれます。 5)開発者は、ブラウザの互換性とパフォーマンスの最適化に注意を払う必要があります。

H5:Web開発の新機能と機能H5:Web開発の新機能と機能Apr 29, 2025 am 12:07 AM

H5は多くの新しい機能と機能をもたらし、Webページのインタラクティブ性と開発効率を大幅に改善します。 1。SEOの強化などのセマンティックタグ。 2.マルチメディアサポートは、オーディオとビデオの再生とタグを簡素化します。 3. Canvas Drawingは、動的なグラフィックスの描画ツールを提供します。 4.ローカルストレージは、LocalStorageとSessionStorageを介してデータストレージを簡素化します。 5. Geolocation APIは、ロケーションベースのサービスの開発を促進します。

See all articles

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

メモ帳++7.3.1

メモ帳++7.3.1

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