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

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

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

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

HTML

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

Q&A

1回答

904閲覧

javascript 一定の値に達すると画像が変わる

gakuseikun

総合スコア8

JavaScript

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

HTML

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

0グッド

1クリップ

投稿2020/01/13 06:11

実装したいこと

javascriptについて質問です。
現在、ボタンを押すと100円ずつたまっていき、20回に1回300円貯金されるところまでできています。ここから、2000円貯金されるごとに背景の画像が変わるシステムを作成したいです。2000円、4000円、6000円と超えるごとに背景が変わるようにしたいです。
アドバイスをいただきたいです。
よろしくお願いいたします。

<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <link rel="stylesheet" href="css/style.css"> <title>クリックアプリ</title> </head> <body> <p>家事をして<br><span style="background: linear-gradient(transparent 50%, tomato 70%);"id="Output">0</span>円<br>貯金しました</p> <img class="js-image-insertarea" src=""> <input class="js-trigger-button" type="button" value="貯金する"> <script type="text/javascript"> function getRandomInt(max) { return Math.floor(Math.random() * Math.floor(max)); } ( function() { var Count = 0; if(isNaN(localStorage.getItem('kingaku'))){ var count = localStorage.getItem('kingaku'); count = isNaN(count) ? 0 : number(count); } else{ Count = parseInt(localStorage.getItem('kingaku'),10); //localStorageから読んだ値を文字列→整数変換 } var outputElement = document.getElementById("Output") outputElement.textContent = Count; //起動時のCount値の表示 var imageElement = document.querySelector('.js-image-insertarea') function CountUp() { if(getRandomInt(100) < 11) { Count += 200; } Count += 100; localStorage.setItem('kingaku',Count); //現在のカウント値をlocalStorageに保存する(文字列で保存される) outputElement.textContent = Count; } function getImage() { var image = new Array("./image1.png","./image2.png","./image3.png"); var randomNum = (Math.floor(Math.random() * 3) ); imageElement.src = image[ randomNum ] } function onClickTriggerButton() { CountUp(); getImage(); } document.querySelector('.js-trigger-button').addEventListener('click', onClickTriggerButton) })() </script> </body> </html>

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

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

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

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

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

guest

回答1

0

2000円貯金されるごとに背景の画像が変わるシステム

2000円貯金されるごとに は、算数に過ぎませんので、
除算(被除数 ÷ 除数 = 商 + 剰余)を考えます。

  • 被除数:貯金(savings
  • 除数:2000
  • 商: 配列のインデックス

javascript

1var bgImages = [ 2 "bg0.jpg", // bgImages[0] 3 "bg1.jpg", // bgImages[1] 2,000円 4 "bg2.jpg", // bgImages[2] 4,000円 5 "bg3.jpg", // bgImages[3] 6,000円 6 "bg4.jpg", // bgImages[4] 8,000円 7 "bg5.jpg", // bgImages[5] 10,000円 8 "bg6.jpg" // bgImages[6] 12,000円 9] 10 11 12var getBgImageName = savings => { 13 // 除算 14 let imageIndex = isFinite(savings) 15 ? parseInt(savings / 2000) 16 : 0; 17 let imageName = bgImages[imageIndex]; 18 19 console.log( savings, imageIndex, imageName ); 20 return imageName 21} 22 23getBgImageName(1500) // "bg0.jpg" 24getBgImageName(2500) // "bg1.jpg" 25getBgImageName(3500) // "bg1.jpg" 26getBgImageName(5500) // "bg2.jpg" 27getBgImageName(7500) // "bg3.jpg"

この考え方をコードの必要箇所に記述します。

投稿2020/01/13 08:30

編集2020/01/13 08:32
AkitoshiManabe

総合スコア5432

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問