質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery UI

jQuery UI はjQuery公式のインターフェースライブラリであり、対話型のウェブアプリケーションを作る際に役立ちます。

ドラッグ&ドロップ

コンピューターのGUIにおいて、バーチャルなものを「つかむ」ことによって選択し、別の場所や他のバーチャルなものの上に動かす行為、またはその行為に対応していることを指す。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

解決済

jQuery 要素をドラッグ&ドロップして位置を取得したい

chibimaruchan
chibimaruchan

総合スコア2

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery UI

jQuery UI はjQuery公式のインターフェースライブラリであり、対話型のウェブアプリケーションを作る際に役立ちます。

ドラッグ&ドロップ

コンピューターのGUIにおいて、バーチャルなものを「つかむ」ことによって選択し、別の場所や他のバーチャルなものの上に動かす行為、またはその行為に対応していることを指す。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

1回答

0評価

0クリップ

1367閲覧

投稿2021/06/04 02:44

前提・実現したいこと

要素をドラッグし、ドロップエリア内でドロップしたときの座標を取得・表示したいです。
このときの位置は画面の端からのものではなく、ドロップエリアを親要素からの位置をposition()を用いて取得します。
一度エリア内でドロップした後でも、エリア内外自由に動かしたいです。

発生している問題・エラーメッセージ

親要素(drop_area)からの位置をposition()を使って取得したいのですが、
offset()のように画面の端からの位置しか取得できません。

該当のソースコード

HTML

<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>Draggable / Droppable</title> <link rel="stylesheet" type="text/css" href="./css/style.css"> <link type="text/css" rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/cupertino/jquery-ui.min.css" /> <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script> <script type="text/javascript" src="http://code.jquery.com/ui/1.10.3/jquery-ui.min.js"></script> <script type="text/javascript"> $(function() { // 要素をドラッグ可能にする $(".item").draggable({ // ドラッグした要素の元の位置を検索 start: function(event, ui) { // 要素のドラッグ開始位置を表示する var startPos = $(this).position(); $("div#start").text("START:\nX軸:"+ startPos.left + "\nY軸:" + startPos.top); }, // 要素がドロップされた位置を見つける stop: function(event, ui) { // ドロップした位置を表示する var stopPos = $(this).position(); $("div#stop").text("STOP:\nX軸:"+ stopPos.left + "\nY軸:" + stopPos.top); } }); }); </script> </head> <body> <div id="jquery-ui-draggable"> <div id="item1" class="item">A</div> <hr /> <span id="zahyou"></span> <div class="drop_area"></div> </div> <div class="result"> <div id="start">ドラッグの開始を待っています...</div> <div id="stop">ドロップを待っています...</div> </div> </body> </html>

試したこと

CSS

.item { width: 100px; height: 100px; margin: 40px; border: solid 1px #333; float:left; } #item1 { background-color: #f2ffe5; } .drop_area { width: 800px; height: 400px; margin: 40px; border: solid 1px #333; } // ここでドロップエリアにpositionを設定しても反映されない。 // このCSSを外すと、親要素からの位置情報の取得以外は理想の動きになる。 .drop_area { position: relative; top: 0; left 0; } .result { margin: 40px; } hr { clear: both; }

補足情報(FW/ツールのバージョンなど)

なかなか実現できず、こちらで質問させていただきました。
アドバイスを頂けますと幸いです。よろしくお願いいたします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery UI

jQuery UI はjQuery公式のインターフェースライブラリであり、対話型のウェブアプリケーションを作る際に役立ちます。

ドラッグ&ドロップ

コンピューターのGUIにおいて、バーチャルなものを「つかむ」ことによって選択し、別の場所や他のバーチャルなものの上に動かす行為、またはその行為に対応していることを指す。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。