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

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

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

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

CSS

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

Q&A

解決済

1回答

3046閲覧

javascriptでdivに画像のセット

Qoo

総合スコア1249

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

CSS

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

0グッド

0クリップ

投稿2016/08/24 09:27

javascriptにて、divに動的にimageをセットするスクリプトを作っています。

<div id="screen2" position: relative;" ></div> <div id="screen3" position: relative;" ></div>

screen2とscreen3のdivに同じ画像をセットしたいのですが、うまくいきません。
screen3は原寸サイズ、screen2は原寸の3分の1のサイズになるようにしています。
下記のスクリプトでscreen2のみ、screen3のみで実行するとそれぞれのスクリーンに綺麗に画像が
設定されるのですが、同時に行うとscreen3のみにセットされます。(実行順を入れ替えるとscreen2のみになる)

何か間違っていますでしょうか。

javascript

1 2 function addImage(path, x, y, width, height) { 3 4 $('#screen2 .bg2').remove(); 5 $('#screen3 .bg3').remove(); 6 7 var img = $('<img>').attr({ 8 'src': path, 9 }).css({ 10 width: '100%', 11 height: '100%' 12 }); 13 14 if (!width) width = img.prop('naturalWidth'); 15 if (!height) height = img.prop('naturalHeight'); 16 17 $('<div class="bg2">').resizable({ 18 containment: 'parent' 19 }).draggable({ 20 containment: 'parent', 21 scroll: false 22 }).css({ 23 width: width / 3, 24 height: height / 3, 25 left: x / 3, 26 top: y / 3, 27 zIndex: '0', 28 position: 'absolute', 29 30 }).append(img).appendTo('#screen2'); 31 32 33 $('<div class="bg3">').resizable({ 34 containment: 'parent' 35 }).draggable({ 36 containment: 'parent', 37 scroll: false 38 }).css({ 39 width: width , 40 height: height , 41 left: x , 42 top: y , 43 zIndex: '0', 44 position: 'absolute', 45 46 }).append(img).appendTo('#screen3'); 47 48 }; 49

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

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

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

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

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

guest

回答1

0

ベストアンサー

.append()メソッドはオブジェクトの複製をしません(移動させます)。
なので.clone()メソッドを使いましょう。

.clone() | jQuery API Documentation

投稿2016/08/24 10:03

Lhankor_Mhy

総合スコア36087

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

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

Qoo

2016/08/24 10:11

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問