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

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

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

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

JavaScript

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

CSS

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

Q&A

解決済

1回答

983閲覧

JavaScriptでボタンをタップしたら背景画像が切り替わるようにしたいです

treevillage

総合スコア4

HTML5

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

JavaScript

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

CSS

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

0グッド

0クリップ

投稿2020/09/18 14:50

JavaScript初心者です。以下質問内容です。

JavaScriptでボタンをタップしたら背景画像が切り替わるようにしたいです。

bg01.jpg → bg02.jpg → bg03.jpg → bg04.jpg

ボタンをタップする度に、上記のように背景画像が切り替わり、
bg04.jpgまできたら、またbg01.jpgに戻りループする形で実装したいです。

ネットで調べてみたのですが、当てはまるものが見つからないため質問しました。

下記が現状のコードです。わかる方いらっしゃいましたらアドバイスお願いします。

HTML

1<body> 2 <div class="wrapper"> 3   <input type="button" value="背景変更" onclick=""> 4 </div> 5</body>

CSS

1.wrapper { 2 background-image:url("../img/bg01.jpg"); 3 background-size:cover; 4} 5

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

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

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

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

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

guest

回答1

0

ベストアンサー

例えばこんな感じでどうでしょうか?

HTML

1<input type="button" value="背景変更" onclick="func()">

Javascript

1// 切り替える画像を配列に入れておく 2const img = ['bg01.jpg', 'bg02.jpg', 'bg03.jpg', 'bg04.jpg']; 3let c = 0; 4 5function func() { 6 // 関数が読み込まれるたびにカウントアップ 7 c++; 8 9 // 画像の数を超えたらリセット 10 if (c >= img.length) c = 0; 11 12 // 要素を指定して背景画像のスタイルを変更 13 document.querySelector('.wrapper').style.backgroundImage = `url("${img[c]}")`; 14}

投稿2020/09/18 15:28

Create_NAYU

総合スコア101

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

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

treevillage

2020/09/19 03:44

早速ありがとうございます! bgchange.jsを作成して、いただいたコードをかきました。 最初上手く動作しなかったんですが、 const img = ['img/bg01.jpg', 'img/bg02.jpg', 'img/bg03.jpg', 'img/bg04.jpg']; このように指定したところ画像が切り替わりました。 ですが、Googleの検証ツールを確認すると、 Uncaught SyntaxError: Identifier 'img' has already been declared このようなエラーが表示されています。現状問題なく動作してますが、原因わかりますでしょうか? 度々申し訳ございません。 よろしくお願いいたします。
Create_NAYU

2020/09/19 03:47

おそらく、変数imgを他でも使用し重複定義エラーとなっていると思います。 変数名を変えてみてはどうでしょうか?
treevillage

2020/09/19 04:09

解消しました!ベストアンサーにさせていただきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問