Apple 電卓の JS 実装

Apple 電卓の JS 実装

この記事の例では、Appleの電卓を実装するためのJSの具体的なコードを参考までに共有しています。具体的な内容は次のとおりです。

<!DOCTYPE html>
<html>
 <ヘッド>
  <メタ文字セット="utf-8">
  <title>携帯電話</title>
  <スタイル タイプ="text/css">
   #電話{
    位置: 相対的;
    幅: 380ピクセル;
    高さ: 700ピクセル;
    ボックスの影: 1px 1px 10px #808080;
    マージン: 自動;
    境界線の半径: 30px;
   }
   
   .kj{
    位置: 絶対;
    幅: 8px;
    高さ: 60px;
    背景色: 黒;
    右: -8px;
    上:100ピクセル;
   }
   .yl{
    位置: 絶対;
    幅: 8px;
    高さ: 80px;
    背景色: 黒;
    左: -8px;
    上: 85px;
   }
   
   。トップ{
    幅: 120ピクセル;
    高さ: 50px;
    /* ボックスシャドウ: 1px 1px 10px #808080; */
    マージン: 自動;
   }
   
   .mkf{
    フロート: 左;
    幅: 100ピクセル;
    高さ: 10px;
    境界線の半径: 5px;
    背景色: 黒;
    右マージン: 10px;
    上マージン: 20px;
   }
   .sxj{
    フロート: 左;
    幅: 10px;
    高さ: 10px;
    境界線の半径: 5px;
    背景色: 黒;
    上マージン: 20px;
   }
   
   。画面{
    幅: 370px;
    高さ: 600px;
    背景色: 黒;
    マージン: 自動;
   }
   .結果番号{
    高さ: 120px;
    /* パディング上部: 30px; */
   }
   .sp{
    フロート: 右;
    色: 白;
    フォントサイズ: 50px;
    上マージン: 50px;
   }
   
   .nu​​m{
    高さ: 480ピクセル;
   }
   
   。鍵{
    幅: 82.5px;
    高さ: 82.5px;
    境界線の半径: 50px;
    背景色: #808080;
    フロート: 左;
    マージン: 5px;
    
    
    テキスト配置: 中央;
    行の高さ: 80px;
    フォントサイズ: 20px;
    色: 白;
   }
   。初め{
    背景色: #B0B0B0;
    色: 黒;
   }
   。2番{
    背景色: オレンジ;
   }
   
   。三番目{
    幅: 175ピクセル;
   }
   
   
   
   
   。家{
    幅: 45px;
    高さ: 45px;
    境界線の半径: 25px;
    背景色: #B0B0B0;
    マージン: 3px 自動 0px 自動;
    
   }
  </スタイル>
 </head>
 <本文>
  <div id="電話">
   <!--電源ボタン-->
   <div class="kj"></div>
   <!--ボリューム-->
   <div class="yl"></div>
   <!-- 電話機の上部 -->
   <div class="top">
    <!-- マイク -->
    <div class="mkf"></div>
    <!-- カメラ -->
    <div class="sxj"></div>
   </div>
   <!-- 画面 -->
   <div class="screen">
    <div class="結果番号">
     <span class="sp">0</span>
    </div>
    
    <div class="num">
     <div class="key first" onclick="clearCompute()">AC</div>
     <div class="key first" onclick="deleteLastNum()">←</div>
     <div class="key first">%</div>
     <div class="key second" onclick="fun('/')">/</div>
     <div class="キー キー番号" onclick="fun(7)">7</div>
     <div class="キー キー番号" onclick="fun(8)">8</div>
     <div class="キー キー番号" onclick="fun(9)">9</div>
     <div class="key second" onclick="fun('*')">*</div>
     <div class="キー キー番号" onclick="fun(4)">4</div>
     <div class="キー キー番号" onclick="fun(5)">5</div>
     <div class="キー キー番号" onclick="fun(6)">6</div>
     <div class="key second" onclick="fun('-')">-</div>
     <div class="キー キー番号" onclick="fun(1)">1</div>
     <div class="キー キー番号" onclick="fun(2)">2</div>
     <div class="キー キー番号" onclick="fun(3)">3</div>
     <div class="key second" onclick="fun('+')">+</div>
     <div class="key third keynum" onclick="fun(0)">0</div>
     <div class="key" onclick="fun('.')">.</div>
     <div class="key second" onclick="compute()">=</div>
    </div>
   </div>
   <!-- ホームボタン -->
   <div class="home">
    
   </div>
  </div>
  <script type="text/javascript">
   var span = document.querySelector(".sp");
   /**
    * @param {オブジェクト} 数値
    * 数字キーボードをクリックして、span タグ内の数字を置き換えます */
   関数fun(num){
    var 値 = span.innerText;
    値 == 0 の場合
     span.innerText = 数値;
    }それ以外{
     span.innerText = span.innerText.concat(num);
    }
   }
   /**
    * 計算結果 */
   関数compute(){
    var 値 = span.innerText;
    var 結果 = eval(値);
    span.innerText = 結果;
   }
   /**
    * 計算領域をクリアして0にリセットします
    */
   関数 clearCompute(){
    span.innerText="0";
   }
   /**
    * 計算エリアの最後の文字を削除します*/
   関数deleteLastNum(){
    var 値 = span.innerText;
    console.log(typeof(値))
    値 == 0 の場合    
    }
    それ以外{
     /**
      * 値は文字列です * zs123
      * バイト: テキストがコンピュータに保存されるとき、バイト単位で保存されます。エンコード セットは文字を特定のバイトに変換し、コンピュータに保存します。 * 文字: 人間が理解できる文字または中国語の文字。 * ab 中国語 aj
      * 
      * 文字列は文字の集合です。文字列は、この文字配列に対して関連する操作を実行できるように、多くの共通メソッドを提供します。*/
     if(値.長さ!=1){
     span.innerText = 値.substring(0,値.length-1)
     }それ以外{
      span.innerText="0";
     }
     
    }
   }
  </スクリプト>
 </本文>
</html>

効果画像:

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • js 正確なカウントダウン機能の共有
  • ID番号を確認するための超正確なJavaScriptメソッド
  • js ドラッグ アンド ドロップ テーブルでコンテンツ計算を実現する
  • jsはシンプルな計算機を実装します
  • JavaScript シミュレーション計算機
  • シンプルな計算機機能を実現するJavaScript
  • JavaScript でテキストの行数を計算する方法
  • JavaScript の典型的なケースのシンプルな計算機
  • js 正確な計算

<<:  bashコマンドの使い方の詳細な説明

>>:  sed コマンドを使用して文字列を置換する Linux チュートリアル

推薦する

Nginx がサーバーの生存状態をパッシブにチェックする詳細な説明

導入定期的にヘルスチェックを送信して、アップストリーム グループ内の HTTP サーバーのヘルスを監...

K8Sの高度な機能を理解するための記事

目次K8Sの高度な機能高度な機能要約するkubectl サービスの問題のトラブルシューティングK8S...

Linux (Ubuntu 18.04) に vim エディタをインストールする方法

デスクトップ システムをダウンロードするには、Ubuntu の公式 Web サイト (https:/...

dockerでnginxを実行するときにdaemon offが使用される理由についての簡単な説明

とても嬉しいです。この問題に遭遇したとき、私はDockerコンテナのプロセス原理について話さなければ...

MySQLインデックスの失敗の典型的なケース

目次典型的なケース付録: 一般的なインデックス障害の状況典型的なケース次の構造を持つ 2 つのテーブ...

Vue2.x プロジェクトのパフォーマンス最適化のためのコード最適化の実装

目次1 v-ifとv-showの使用2. 計算と監視を区別する3 v-for トラバーサルでは、アイ...

Vueはシンプルな虫眼鏡効果を実装します

この記事では、参考までに、簡単な虫眼鏡効果を実現するためのVueの具体的なコードを紹介します。具体的...

vue-nuxt ログイン認証の実装

目次導入リンク始めるコードを読み進めてくださいプロキシ設定傍受を要求する異なるプレフィックスを持つイ...

MySQL ストアド プロシージャと共通関数のコード分析

mysql ストアド プロシージャの概念:特定のタスク (クエリと更新) を実行できる、データベース...

IE6 の iframe の水平スクロール バーの解決策

状況は以下のとおりです: (PS: 赤いボックスは iframe 領域を表し、灰色の四角形は上記の ...

CentOS8.1 で Gitlab サーバーを構築するための詳細なチュートリアル

Gitlab と Github の違いについては、あまり説明する必要はありません。一言でまとめると、...

JS WebSocket 切断理由とハートビートの仕組みの詳しい説明

1. 切断理由WebSocket が切断される理由は多数あります。WebSocket が切断されたと...

SQL ストアド プロシージャの取得、データ取得、プロセス分析

この記事は主に、SQL のストアド プロシージャから返されたデータを取得するプロセスの分析を紹介しま...

reduxの動作原理と使い方の説明

目次1. redux とは何ですか? 2. 還元の原則3. redux の使い方は? (1)redu...

Centos7 に yum を使用して MySQL をインストールし、リモート接続を実現する方法

Centos7はyumを使用してMySQLをインストールし、リモート接続を実現する方法です。MySQ...