ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript HTML5でドラッグ機能を簡単に実装するテクニックを詳しく解説

JavaScript HTML5でドラッグ機能を簡単に実装するテクニックを詳しく解説

黄舟
リリース: 2017-03-24 15:08:54
オリジナル
1135 人が閲覧しました

この記事では、ドラッグ機能を簡単に実現するための javascript html5 を紹介します。興味のある方は参考にしてください。

ドラッグ アンド ドロップ (ドラッグ アンド ドロップ) は html5 標準コンポーネントであり、以下から説明します。 5 つの側面、つまり、ドラッグ オブジェクトになる方法、ドラッグ ターゲットになる方法、ドラッグ オブジェクトが所有する イベント、ドラッグ ターゲットが所有するイベント、およびドラッグ アンド ドロップ オブジェクト間で情報を転送する方法です。 objectsオブジェクトのドラッグによって所有されているイベント

dragstart(オブジェクトがドラッグされたときにトリガー)
  • ドラッグターゲットで所有されるイベント


  • dragenter (ドラッグされた要素がドロップターゲットに入ったときにトリガーされます)

dragover (ドラッグされた要素がドロップターゲット内で移動したときに) トリガーされます。マウスオーバー)

drop (ドラッグ要素がドロップターゲットに配置されたときにトリガーされます)
  • ドラッグオブジェクトになる方法

  • HTMLでは、デフォルトでimg要素がドラッグでき、その他の要素もドラッグできますドラッグできるようにするには、draggable=true に設定する必要があります。

    <p draggable="true"></p>
    ログイン後にコピー

    ドラッグターゲットになる方法

HTMLでは、要素はデフォルトではドロップターゲットになることができず、drapenterイベントとdrapoverイベントのデフォルト動作を無効にした場合にのみドラッグアンドドロップターゲットと呼ぶことができます。

droptarget.addEventListener(&#39;dragenter&#39;, function(event) {
  event.preventDefault();
});
droptarget.addEventListener(&#39;dragover&#39;, function(event) {
  event.preventDefault();
});
ログイン後にコピー

ドラッグ アンド ドロップ オブジェクト間で情報を転送する方法

イベントには dataTransferobject があり、これには 2 つの共通メソッド setData() と getData() があり、ドラッグ アンド ドロップ情報を保存し、ドラッグ アンド ドロップ情報を取得するために使用されます。と情報をそれぞれドロップします。このうち、setData() はドラッグ イベントの開始時、つまり、dragstart イベントが設定されたときにのみ設定でき、getData() は通常、ドロップ イベントがトリガーされたときに取得されます。

// drapobj 拖拽元素
// droptarget 放置目标
dragobj.addEventListener(&#39;dragstart&#39;, function(event) {
  event.dataTransfer.setData(&#39;id&#39;, dragobj.id);
});
droptarget.addEventListener(&#39;drop&#39;, function(event) {
  var id = event.dataTransfer.getData(&#39;id&#39;);
  var obj = document.getElementById(id);
  event.preventDefault();
  this.appendChild(obj);
});
ログイン後にコピー

完全なコード





  
  HTML5 拖拽



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

<script> var droptarget = document.getElementById(&#39;droptarget&#39;); var dragobj = document.getElementById(&#39;dragobj&#39;); // drapobj 拖拽元素 // droptarget 放置目标 dragobj.addEventListener(&#39;dragstart&#39;, function(event) { event.dataTransfer.setData(&#39;id&#39;, dragobj.id); }); droptarget.addEventListener(&amp;#39;dragenter&amp;#39;, function(event) { event.preventDefault(); }); droptarget.addEventListener(&amp;#39;dragover&amp;#39;, function(event) { event.preventDefault(); }); droptarget.addEventListener(&#39;drop&#39;, function(event) { var id = event.dataTransfer.getData(&#39;id&#39;); var obj = document.getElementById(id); event.preventDefault(); this.appendChild(obj); }); </script>
ログイン後にコピー
問題があります

Firefoxブラウザ

JavaScriptの高度なプログラミングによると、デフォルトではドロップイベントで画像をドラッグアンドドロップして新しいウィンドウを開くことは禁止されています。 、問題は解決しません。

解決策:

画像を p の背景画像として使用し、 p をドラッグ オブジェクトとして使用する場合、この問題は発生しません。

最終コード





  
  HTML5 拖拽
  



  

<script> var droptarget = document.getElementById(&#39;droptarget&#39;); var dragobj = document.getElementById(&#39;dragobj&#39;); // drapobj 拖拽元素 // droptarget 放置目标 dragobj.addEventListener(&#39;dragstart&#39;, function(event) { event.dataTransfer.setData(&#39;id&#39;, dragobj.id); }); droptarget.addEventListener(&amp;#39;dragenter&amp;#39;, function(event) { event.preventDefault(); }); droptarget.addEventListener(&amp;#39;dragover&amp;#39;, function(event) { event.preventDefault(); }); droptarget.addEventListener(&#39;drop&#39;, function(event) { var id = event.dataTransfer.getData(&#39;id&#39;); var obj = document.getElementById(id); event.preventDefault(); this.appendChild(obj); }); </script>
ログイン後にコピー

以上がJavaScript HTML5でドラッグ機能を簡単に実装するテクニックを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート