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

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

新規登録して質問してみよう
ただいま回答率
85.49%
jQuery UI

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

jQuery

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

Q&A

解決済

1回答

5023閲覧

jQueryUIのDraggableで画像の複製を自由に移動させたい

tkg365

総合スコア11

jQuery UI

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

jQuery

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

0グッド

1クリップ

投稿2017/08/14 14:47

jQueryUIのDraggableを使って、家具の配置シュミレーターを作りたいと思っています。
仕様としては、家(div)の中に家具一覧があり、その中の椅子(画像)をドラッグすると家の中のみ自由に配置できるものを想定しています。
配置が終わった後も家具一覧には椅子(画像)があり、家の中に何個でも椅子(画像)を複製して配置できるようにしたいです。

試行錯誤して、椅子(画像)をドラッグして何個でも複製できるようにはなったのですが、複製した画像が横並びになってしまい、ドラッグしても移動ができない状態になってしまいました…

複製した画像を好きな位置に移動できるようにするには、どうしたらいいでしょうか?
ソースは下記になります。ご指摘よろしくお願いします。

###js

jQuery( function() { jQuery( '.kagu' ) . draggable( { containment: '.ie', scroll: false, opacity: 0.5, helper: 'clone', } ); $('.ie').droppable({ accept: '.kagu', drop: function(event, ui) { ui.draggable.clone().appendTo(this); }, }); } );

###css

.ie { width: 700px; height: 500px; padding: 5px; margin: 0; border-style: dashed; border-radius: 10px; }

###html

<div class="ie ui-widget-content"> <img src="img/isu.png" class="kagu"> </div>

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

おそらく

javascript

1 $('.ie').droppable({ 2 "accept": '.kagu', 3 "drop": function(event, ui) { 4 $(this).prepend(ui.helper.clone().css({opacity:1})); 5 }, 6 }); 7

でいけると思いますが、これだとオリジナルからコピーがわかれるだけで
オリジナルの移動もコピー後のオブジェクトの移動もできません。
もう少し仕様をよく検討されたほうが良いと思います

たとえばこう

javascript

1$(function(){ 2 $(document).on('dblclick','.kagu',function(){ 3 $(this).after($(this).clone()); 4 $('.kagu').draggable( { 5 "containment": '.ie', 6 "opacity": 0.5, 7 }); 8 }); 9 $('.kagu').css({position:"absolute"}).draggable( { 10 "containment": '.ie', 11 "opacity": 0.5, 12 }); 13 $('.ie').droppable({ 14 "accept": '.kagu', 15 "drop": function(e, ui) { 16 ui.draggable.css({position:"absolute"}) 17 }, 18 }); 19}); 20

投稿2017/08/15 04:32

yambejp

総合スコア114747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tkg365

2017/08/20 07:42

返信が遅れてしまい申し訳ありません。 なるほど、仕様からしてまずかったのですね… いただいた回答を見て勉強したいと思います。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問