From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../web/api/datatransfer/setdragimage/index.html | 137 +++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 files/ja/web/api/datatransfer/setdragimage/index.html (limited to 'files/ja/web/api/datatransfer/setdragimage/index.html') diff --git a/files/ja/web/api/datatransfer/setdragimage/index.html b/files/ja/web/api/datatransfer/setdragimage/index.html new file mode 100644 index 0000000000..d46965be0e --- /dev/null +++ b/files/ja/web/api/datatransfer/setdragimage/index.html @@ -0,0 +1,137 @@ +--- +title: DataTransfer.setDragImage() +slug: Web/API/DataTransfer/setDragImage +tags: + - API + - H5 DnD + - HTML DOM + - Method + - Reference + - drag and drop +translation_of: Web/API/DataTransfer/setDragImage +--- +
{{APIRef("HTML Drag and Drop API")}}
+ +

ドラッグが発生すると、ドラッグ対象 ({{event("dragstart")}} イベントが発生した要素) から半透明の画像が生成され、ドラッグ中にマウスポインタに沿って移動します。この画像は自動的に作成されるので、自分で作成する必要はありません。ただし、カスタム画像が必要な場合は、DataTransfer.setDragImage() メソッドを使用して、使用するカスタム画像を設定することができます。画像は通常、{{HTMLElement("image")}} 要素になりますが、{{HTMLElement("canvas")}} やその他の可視要素であっても構いません。

+ +

メソッドの x 座標と y 座標は、マウスポインタに対する画像の相対的な表示方法を定義します。これらの座標は、マウスカーソルがあるべき画像のオフセットを定義します。例えば、ポインタが中心に来るように画像を表示するには、画像の幅と高さの半分の値を使用します。

+ +

このメソッドは {{event("dragstart")}} イベントハンドラ内で呼び出す必要があります。

+ +

シンタックス

+ +
void dataTransfer.setDragImage(img | element, xOffset, yOffset);
+
+ +

引数

+ +
+
img | element
+
ドラッグフィードバック画像に使用する画像 {{domxref("Element")}} 要素。
+
もし {{domxref("Element")}} が img 要素であれば、ドラッグデータストアのビットマップをその要素の画像に設定します (その要素に固有のサイズで)。そうでなければ、ドラッグデータストアのビットマップを、与えられた要素から生成された画像に設定します (そのための正確なメカニズムは現在のところ指定されていません)。
+
xOffset
+
画像内の水平方向のオフセットを示す long
+
yOffset
+
画像内の垂直方向のオフセットを示す long
+
+ +

戻り値

+ +
+
void
+
+
+ +

+ +

この例では、setDragImage() メソッドの使用方法を示します。この例では example.gif という名前の画像ファイルを参照していることに注意しましょう。そのファイルが存在する場合はそのファイルがドラッグ画像として使用され、そのファイルが存在しない場合はブラウザがデフォルトのドラッグ画像を使用します。

+ +

demo

+ +
<!DOCTYPE html>
+<html lang=ja>
+<title>DataTransfer.setDragImage() の例</title>
+<meta name="viewport" content="width=device-width">
+<style>
+  div {
+    margin: 0em;
+    padding: 2em;
+  }
+  #source {
+    color: blue;
+    border: 1px solid black;
+  }
+  #target {
+    border: 1px solid black;
+  }
+</style>
+<script>
+function dragstart_handler(ev) {
+ console.log("dragStart");
+ // ドラッグのフォーマットとデータを設定します。データにはイベントターゲットの ID を使用します。
+ ev.dataTransfer.setData("text/plain", ev.target.id);
+ // 画像を作成してドラッグ画像に使用する
+ // 注意: "example.gif" を既存の画像に変更しないと画像が作成されず、
+ // デフォルトのドラッグ画像が使用されます。
+ var img = new Image();
+ img.src = 'example.gif';
+ ev.dataTransfer.setDragImage(img, 10, 10);
+}
+
+function dragover_handler(ev) {
+ console.log("dragOver");
+ ev.preventDefault();
+}
+
+function drop_handler(ev) {
+ console.log("Drop");
+ ev.preventDefault();
+ // ドロップ対象のIDであるデータを取得します。
+ var data = ev.dataTransfer.getData("text");
+ ev.target.appendChild(document.getElementById(data));
+}
+</script>
+<body>
+<h1><code>DataTransfer.setDragImage()</code> の例</h1>
+ <div>
+   <p id="source" ondragstart="dragstart_handler(event);" draggable="true">
+     この要素を選択し、ドロップゾーンにドラッグしてから選択を解除して要素を移動します。</p>
+ </div>
+ <div id="target" ondrop="drop_handler(event);" ondragover="dragover_handler(event);">ドロップゾーン</div>
+</body>
+</html>
+
+ +

仕様

+ + + + + + + + + + + + + + + + + + + + + +
仕様書ステータスコメント
{{SpecName('HTML WHATWG', 'interaction.html#dom-datatransfer-setdragimage','setDragImage()')}}{{Spec2('HTML WHATWG')}}
{{SpecName('HTML5.1', 'editing.html#dom-datatransfer-setdragimage','setDragImage()')}}{{Spec2('HTML5.1')}}W3C HTML5 に含まれない {{Spec2('HTML5 W3C')}}。
+ +

ブラウザの互換性

+ + + +

{{Compat("api.DataTransfer.setDragImage")}}

+ +

あわせて参照

+ +

{{page("/ja/docs/Web/API/DataTransfer", "あわせて参照")}}

-- cgit v1.2.3-54-g00ecf