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

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

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

onclickとはユーザーのクリック処理を指します。これは"onmousedown"(押下)と"onmouseup"(押上)の二つの事象の組み合わせです

button

HTMLで用いる<button>タグです。

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

825閲覧

backgroundimage同じ画像3点同時の色替えが1点しかできない。

keydw

総合スコア3

onclick

onclickとはユーザーのクリック処理を指します。これは"onmousedown"(押下)と"onmouseup"(押上)の二つの事象の組み合わせです

button

HTMLで用いる<button>タグです。

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/08/28 08:22

前提・実現したいこと

ボタンを押すことで製品の色が変わるシミュレータを作っています。
1つの画像で2箇所の色を変えられるようにしています。
1つのアイテムを色替えするために1箇所は15色、backgroundimageで5色、画像を変えています。
1アイテムにつき3点の同じ画像をボタン一つで同時に変更できるようにしたいです。

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

backgroundimageで色替えしている部分が1アイテムの画像3つあるうちの一つしか変わりません。

該当のソースコード

<!--HTML--> <!--色替え15色の部分--> <ul class="color_button_ul"> <div><span>前板カラー:</span><span id="message">ボタンを押して前板カラーを選択してください。</span></div> <li class="color_button_li"><input type="button" class="color_button" onclick="color_wh()" value="ホワイト"></li> <li class="color_button_li"><input type="button" class="color_button" onclick="color_skwh()" value="SKホワイト"></li> <li class="color_button_li"><input type="button" class="color_button" onclick="color_dcwh()" value="DCホワイト"></li> <li class="color_button_li"><input type="button" class="color_button" onclick="color_wdwh()" value="ウッドホワイト"></li> <li class="color_button_li"><input type="button" class="color_button" onclick="color_gna()" value="Gナチュラル"></li> <li class="color_button_li"><input type="button" class="color_button" onclick="color_no()" value="Nオーク"></li> <li class="color_button_li"><input type="button" class="color_button" onclick="color_late()" value="ラテ"></li> <li class="color_button_li"><input type="button" class="color_button" onclick="color_mid()" value="ミディアム"></li> <li class="color_button_li"><input type="button" class="color_button" onclick="color_stn()" value="ステン"></li> <li class="color_button_li"><input type="button" class="color_button" onclick="color_lg()" value="LGステン"></li> <li class="color_button_li"><input type="button" class="color_button" onclick="color_wn()" value="ウォールN"></li> <li class="color_button_li"><input type="button" class="color_button" onclick="color_br()" value="ブラウン"></li> <li class="color_button_li"><input type="button" class="color_button" onclick="color_rb()" value="ラスティBR"></li> <li class="color_button_li"><input type="button" class="color_button" onclick="color_win()" value="ワイン"></li> <li class="color_button_li"><input type="button" class="color_button" onclick="color_bk()" value="ブラック"></li> </ul> <!--問題の色替え5色の部分--> <div><span>ボディカラー:</span><span id="message3">ボタンを押してボディカラーを選択してください。</span></div> <ul id="body_button_ul"> <button onclick="setBackground('../../img/more_a/ub/morea_ub_40hst_bodywh.png');">ホワイト</button> <button onclick="setBackground('../../img/more_a/ub/morea_ub_40hst_bodyna.png');">ナチュラル</button> <button onclick="setBackground('../../img/more_a/ub/morea_ub_40hst_bodywh.png');">ウォールN</button> <button onclick="setBackground('../../img/more_a/ub/morea_ub_40hst_bodyna.png');">ブラウン</button> <button onclick="setBackground('../../img/more_a/ub/morea_ub_40hst_bodywh.png');">ブラック</button> </ul>
<td><div class="draggable"><div class="productimg40"> <span> <img id="body01" class="no1 body40" src="../../img/more_a/ub/morea_ub_40hst_wh.png " name="imgLink" title="40HST" style="background:url(../../img/more_a/ub/morea_ub_40hst_bodywh.png)"> <img id="body02" class="no2 body40" src="../../img/more_a/ub/morea_ub_40hst_wh.png" name="imgLink2" title="40HST" style="background:url(../../img/more_a/ub/morea_ub_40hst_bodywh.png)"> <img id="body03" class="no3 body40" src="../../img/more_a/ub/morea_ub_40hst_wh.png" name="imgLink3" title="40HST" style="background:url(../../img/more_a/ub/morea_ub_40hst_bodywh.png)"> </span> </div></div></td>
<!--問題の色替え5色の部分のjavascript-->

function setBackground( $img ) {
let $element = document.querySelector( ".body40");
$element.style.backgroundImage = "url( " + $img + " )";
document.querySelector( ".body40" );
}

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

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

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

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

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

guest

回答1

0

ベストアンサー

backgroundimageで色替えしている部分が1アイテムの画像3つあるうちの一つしか変わりません。

.body40全てに同時に変更をかけるならdocument.querySelectorではなくdocument.querySelectorAllです。

javascript

1function setBackground( $img ) { 2 let elementList = document.querySelectorAll( ".body40"); 3 elementList.forEach((element) => { 4 element.style.backgroundImage = "url( " + $img + " )"; 5 }); 6}

投稿2020/08/28 08:27

nekoniki

総合スコア2411

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

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

keydw

2020/08/28 08:35

ご回答ありがとうございます。 組んでいただいた通りに差し替えたら難なくできました。 本当に助かりました。ありがとうございました。
nekoniki

2020/08/28 08:35

「全然作動しない」の詳細がわからないためなんともいえませんが・・・ document.querySelectorと違ってdocument.querySelectorAllは単一の要素ではなく、合致する要素の配列(NodeList)で返ってきます。 なので、forEachでループを回して順番にbackgroundImageを変更しています。
keydw

2020/08/28 08:55

すみません。 不慣れなため見落としていました。 返信1つ消しておきました。 教えていただいた方法で難なく完成しました。 悩んでいた時間が何だったのかと思うほどあっさり。。。 本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問