忍者CODE

ログイン

1
電卓を作ろう!

PHPの問題

jQueryAnimation

完了にする!
問題
今回は電卓のプラスマイナス機能を作っていきましょう!かなりボリュームが多いですが、重要なポイントをたくさん学べる題材なのでしっかり学んでください。ここで一気にレベルアップしましょう!
自分の環境に書くコード
              <div class="display"></div>
<div class="box">
  <div class="switch" id="1">1</div>
  <div class="switch" id="2">2</div>
  <div class="switch" id="3">3</div>
  <div class="switch" id="4">4</div>
  <div class="switch" id="5">5</div>
  <div class="switch" id="6">6</div>
  <div class="switch" id="7">7</div>
  <div class="switch" id="8">8</div>
  <div class="switch" id="9">9</div>
  <div class="switch" id="0">0</div>
  <div class="reset">AC</div>
  <div class="result">=</div>
</div>
<div class="signal">
  <div class="calculation" id="plus">+</div>
  <div class="calculation" id="minus">-</div>
  <div class="calculation" id="multiply">×</div>
  <div class="calculation" id="divide">÷</div>
</div>
¥HTML¥
            
              .display{
  border: 2px solid black;
  width: 150px;
  height: 50px;
  margin-bottom: 10px;
  line-height: 50px;
  text-align: right;
  overflow: hidden;
}
.box{
  width: 150px;
  height:200px;
  border: 1px solid black;
  display: flex;
  flex-wrap: wrap;
}
.switch,.reset,.result{
  width: 50px;
  height: 50px;
  line-height: 50px;
  text-align: center;
  border: 1px solid black;
  box-sizing: border-box;
  cursor: pointer;
}
.signal{
  width: 200px;
  height: 50px;
  border: 1px solid black;
  margin-top: 10px;
  display: flex;
}
.calculation{
  width: 50px;
  height: 50px;
  border: 1px solid black;
  cursor: pointer;
  text-align: center;
  line-height: 50px;
  font-size: 1.4em;
}
¥CSS¥
            
期待する画面
ログインして解答を見る
コードのアイコン

解答ソースコード

              var saveNum;
$(function () {
  $(".switch").click(function(){
    var num=$(this).attr("id");
    $(".display").append(num);
  });
  $(".calculation").click(function(){
    saveNum=$(".display").text();
    $(".display").text(");
    $(".active").removeClass("active");
    $(this).addClass("active");
  });
  $(".reset").click(function(){
    saveNum=0;
    $(".display").text(");
  });
  $(".result").click(function(){
    var calculation=$(".active").attr("id");
    switch (calculation) {
      case "plus":plus();
      break;
      case "minus":minus();
      break;
      case "multiply":multiply();
      break;
      case "divide":divide();
      break;
    }
  });
  //ここからプラスが押された時の処理
  function plus(){
    var result = parseFloat(saveNum) + parseFloat($(".display").text());
    $(".display").text(result);
  }
  //ここからマイナスが押された時の処理
  function minus(){
    var result = parseFloat(saveNum)-parseFloat($(".display").text());
    $(".display").text(result);
  }
  //ここから掛るが押された時の処理
  function multiply() {
    var result = parseFloat(saveNum) * parseFloat($(".display").text());
    $(".display").text(result);
  }
  //ここから割るが押された時の処理
  function divide() {
    var result = parseFloat(saveNum) / parseFloat($(".display").text());
    $(".display").text(result);
  }
});
¥JavaScript¥
            
答えのアイコン

解説

まず数字がクリックされたときにdisplayに表示する部分からです。これはクリックされたswitchのidをattrで取得し、displayにappendで取得した数値を付け足してあげます。

次にcalculationがクリックされたとき演算が決められるのでまずdisplayに入っている数字を保存しておきます。そしてdisplayの中を空にします。最後にクリックされたcalculationにactiveというクラスを与えてます。しかしこのままだと重複が発生するためクラスを与える前に、activeクラスを持っているものからactiveを剥奪しています。

次にリセットボタンですが、リセットは保存していたsaveNumを0にし、displayの中を空にすれば完成なのでとても簡単です。

最後に結果を出力するにはactiveクラスを持っている要素のidを取得し、その値によって処理を変更します。後ろの方に書いてあるコードで四則演算を定義しています。
twitterのアイコン
活動記録をTweetする

甲賀

なら実務レベルで使えるスキルを
体系的に学ぶことが可能です

Web制作学習は、決して楽ではありませんが
「正しい方向で」「コツコツ」と続ければ、
必ずスキルアップする事が可能です。

甲賀では、挫折せずに学習を継続するための
カリキュラム・サポート体制をご用意しています。

↓↓↓↓

ステップバイステップで
着実にスキルが身につくカリキュラム

  • step 01
    初心者でもよく分かる!
    Web制作の基礎の基礎
    • 1.知っておこうWeb制作に関する基礎知識の話

    • 2.HTMLの書き方や役割を基礎から学ぶマークアップ入門

    • 3.CSSで挫折しない為の基礎学習【超重要プロパティ】

    • 4.基礎を終えたらHTMLコーディングを鍛えよう(デザインから)

    • 5.初心者向けHTMLコーディング完全解説(STEP1総まとめ)

  • step 02
    真似して覚えるWeb制作
    (デザイン〜プログラミングまで)
    • 1.属性ってなに?などなどHTML,CSSの深堀り編

    • 2.デザイナーから直接学ぶ猫ちゃんサイトのデザイン解説

    • 3.鎧模写-YOROIMOSYA【銅の鎧】

    • 4.JavaScriptで学ぶプログラミングの基本のきほん【16項目】

  • step 03
    動きをつけたり、効率化!
    脱初心者を目指すためのスキルを学ぼう
    • 1.jQueryの基本的な使い方から応用まで【プラグイン解説あり】

    • 2.Web制作でCSSを簡単に書くためのSASS入門【小技あり】

    • 3.現場で使うCSS設計の考え方参考サイトを元に解説

    • 4.生のJavaScriptだけで英単語アプリを作ろう(音声読み上げ付き)

  • step 04
    ここまでくれば中級者!
    ちょこっと応用編のWeb制作
    • 1.JavaScriptの屋敷【鳳凰の間】

    • 2.JavaScriptで作るLINE風チャットボット

    • 3.コマンドラインとアプリ操作を同時に学べるGit【15選】

    • 4.EJSを使いコーディング力を中級者まで引き上げる

  • step 05
    実務で必須の制作スキル
    WordPressについて学ぶ
    • 1.鎧模写-YOROIMOSYA【銀の鎧】

    • 2.PHPを基礎から学びたい人向け14項目から学ぶ【入門】

    • 3.PHPで簡易的な掲示板を作ってみよう【コーディングあり】

    • 4.甘えを吹き飛ばす!WordPress開発

    • 5.WordPressで¥400,000の案件を徹底解説!

    • 6.WordPress有料テーマSnow Monkeyの解体書

甲賀を詳しく見る

プログラミングスキルが
一気に上がる!
有料級の解説動画19本
を今なら無料でGETできる!

忍者CODEの公式LINE登録後
LINE内にあるURLよりご覧になれます

  • プログラミング本気で学習してる方
  • もちろん完全無料で且つ手続き不要
  • 将来プログラミングで稼ぎたい方
  • 動画解説で真剣に学びたい方
スキルアップ動画をGET