国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ ウェブフロントエンド jsチュートリアル HTML、CSS、JavaScript を使用した基本的な電卓の作成

HTML、CSS、JavaScript を使用した基本的な電卓の作成

Jan 11, 2025 pm 10:33 PM

JavaScript で関數(shù)電卓を作成するのは楽しいもので、DOM 操作、イベント処理、條件付きロジック、文字列操作、算術(shù)演算、キーボード入力の統(tǒng)合、ユーザー インターフェイスの CSS スタイリングなど、多くの概念が使用されています。このブログ投稿では、コードを深く掘り下げ、各行を分解してそのプロパティと機能を理解します。このブログを終えるまでに、電卓の仕組みをしっかりと理解できるようになります。

始めましょう。

HTML構(gòu)造のセットアップ

HTML は単純なもので、標(biāo)準(zhǔn)的な定型文から始まります。以下は、index.html

のコード スニペットです。

Creating a Basic Calculator Using HTML, CSS and JavaScript

セクション。それぞれにボタンのセットが含まれます。これらのセクションには、數(shù)字 (0 ~ 9)、數(shù)學(xué)演算子 ( 、-、*、/)、およびその他の重要なボタン (AC、C、%、=、. など) が含まれます。

タグは、計算機のロジックと機能が定義されている外部 JavaScript ファイル script.js にリンクします。この外部ファイルはユーザーの操作と計算を処理し、電卓が意図したとおりに操作を?qū)g行できるようにします。

ここでは、表示ボックスには入力と結(jié)果が表示され、ボタン ボックスにはすべての電卓ボタンが表示されます。

スタイル設(shè)定用の CSS の追加

それでは、電卓を視覚的に魅力的で使いやすいものにスタイル設(shè)定してみましょう。

Creating a Basic Calculator Using HTML, CSS and JavaScript

CSS コードを分解してみましょう。

  1. ラッパーのスタイリング

Creating a Basic Calculator Using HTML, CSS and JavaScript

最小高さ: 100vh;ラッパーが少なくともビューポートの高さ全體を占めるようにします。ディスプレイ: フレックス;柔軟なレイアウトが可能になり、子の配置が可能になります。 justify-content: center; align-items: center; はコンテンツを水平方向に中央揃えにします。コンテンツを垂直方向の中央に配置します。最後に、境界線: 2 ピクセルの黒一色。ラッパーの周囲に境界線を追加します。

  1. 電卓コンテナのスタイル:

Creating a Basic Calculator Using HTML, CSS and JavaScript

ディスプレイ: フレックス;電卓コンテナを柔軟にし、子要素を行または列に配置できるようにします。 flex-direction: 列;子要素を垂直方向に配置します。ギャップ: 12px;各セクションまたは要素の間にスペースを追加します。最後に、幅: 500px;電卓の幅を 500px に設(shè)定します。

  1. ディスプレイボックスのスタイル

Creating a Basic Calculator Using HTML, CSS and JavaScript

境界線: 1 ピクセルの黒一色。表示ボックスに枠線を追加します。パディング: 16px;ボックス內(nèi)にスペースを設(shè)けて読みやすくします。テキストの配置: 右;テキストが右揃えになるようにします。フォントサイズ: 24px;フォントサイズを大きくして視認(rèn)性を向上させます。一方、border-radius: 5px;ボックスの角を丸くします。

  1. ボタンコンテナとボタンのスタイル

Creating a Basic Calculator Using HTML, CSS and JavaScript

ここでは、ボタン コンテナは .flex-container でスタイル設(shè)定されています。子要素の柔軟なレイアウトを作成します。 justify-content: space-between;プロパティはボタン間にスペースをあけて均等に配置しますが、gap: 8px;各ボタン間の適切な間隔を確保して、位置を適切に調(diào)整します。

各ボタンは flex: 1; でスタイル設(shè)定されており、行內(nèi)で均等なスペースを占めます。パディング: 16px;快適さのために各ボタンの內(nèi)側(cè)にスペースを追加し、フォントサイズ: 20px;テキストが読みやすいことを保証します。フォントの太さ: 太字。テキストを目立たせます。一方、border: 1px 真っ黒です。各ボタンの周囲に境界線を追加します。さらに、border-radius: 8px;ボタンの角をわずかに丸め、カーソル: ポインタ;ホバーするとカーソルがポインタに変わります。ボタンの背景色は、background-color: rgb(255, 255, 255); で白に設(shè)定されます。

「=」ボタンの場合、.equal クラスは flex: 2.5; を使用します。より多くのスペースを確保し、他のボタンの幅の 2.5 倍にします。ボタンの上にマウスを置くと、button:hover スタイルによって背景色が灰色に変更されます。背景色:rgb(127, 131, 131);そして文字の色を白にします。このトランジション効果は、transition: 背景色 0.3 秒イーズ、カラー 0.3 秒イーズ; によって滑らかになり、色間の 0.3 秒のフェードが可能になります。

上記の HTML と CSS を使用すると、計算機は次のようになります:

Creating a Basic Calculator Using HTML, CSS and JavaScript

それでは、計算機に命を吹き込む、主要部分に移りましょう。
JavaScript コードのスニペット
Creating a Basic Calculator Using HTML, CSS and JavaScript

理解を深めるためにコードを分解してみましょう。

  1. DOM 要素の選択

Creating a Basic Calculator Using HTML, CSS and JavaScript

displayBox 変數(shù)は、表示ボックス (

) への參照を保持します。
  1. 表示と演算子の変數(shù)

Creating a Basic Calculator Using HTML, CSS and JavaScript

displayValue 変數(shù)は、畫面に表示される現(xiàn)在の値を保持し、計算中の正確な更新を保証します。 lastOperator 変數(shù)は最後に使用された演算子を追跡し、連続した演算子入力などのエラーを防ぎます。さらに、console.log はデバッグ目的、特にレビューのために calculatorBtns ノード リストを記録するために利用されます。

  1. ボタンクリックイベントリスナー/各ボタンのループ

Creating a Basic Calculator Using HTML, CSS and JavaScript

forEach メソッドは、calculatorBtns コレクション內(nèi)の各ボタンをループするために使用されます。各ボタンについて、innerText プロパティが buttonValue 変數(shù)に割り當(dāng)てられます。この変數(shù)には、「AC」、「C」、「9」、「 」など、ボタンに表示されるテキストが保持されます。

その後、onclick イベント リスナーが各ボタンに追加されます。ボタンをクリックすると、割り當(dāng)てられた機能が実行されます。この関數(shù) handleButtonAction(buttonValue) は、ボタンのテキスト (buttonValue) を引數(shù)として受け取ります。ボタンの値を渡すことにより、この関數(shù)により、電卓は表示のクリア、數(shù)値の入力、數(shù)學(xué)的演算の実行などの正しいアクションを?qū)g行できるようになります。

  1. キーボード入力のキー押下の処理

Creating a Basic Calculator Using HTML, CSS and JavaScript

これにより、電卓をキーボードでも操作できるようになります。キーが押されると、対応するボタンのアクションがトリガーされます。たとえば、キーボードで「1」を押すと、値「1」で handleButtonAction() 関數(shù)がトリガーされます。

  1. 表示機能

Creating a Basic Calculator Using HTML, CSS and JavaScript

display() 関數(shù)は、表示ボックス (displayBox) の內(nèi)容を現(xiàn)在の displayValue で更新します。 displayValue が空の場合、デフォルトでは「0.0」が表示されます。

  1. ボタンアクションハンドラー(メインロジック):

Creating a Basic Calculator Using HTML, CSS and JavaScript

コードは、電卓の表示を更新し、計算を処理するためにいくつかの手順を?qū)g行します。まず、eval(displayValue) は、displayValue に格納されている數(shù)式を評価します。たとえば、ディスプレイに「3 5」と表示されている場合、eval は計算して結(jié)果を返します。この場合、結(jié)果は 8 になります。

次に、displayValue = String(result) は結(jié)果を文字列に変換し、displayValue を更新して結(jié)果を畫面に表示します。計算が完了すると、lastOperator = "" は lastOperator を空の文字列にリセットし、以前の演算子がすべてクリアされるようにします。最後に、display() 関數(shù)は表示を更新して計算結(jié)果を表示します。

  1. AC(オールクリア)およびC(クリア)ボタンロジック

Creating a Basic Calculator Using HTML, CSS and JavaScript

「AC」ボタンがクリックされると、コードは buttonValue が「AC」と等しいかどうかをチェックします。 true の場合、displayValue を空の文字列にリセットし、実質(zhì)的に表示全體をクリアして電卓をリセットします。次に、display() 関數(shù)が呼び出され、空の値で表示が更新されます。

「C」ボタンの場合、buttonValue が「C」の場合、コードは、slice(0, -1) を使用して、displayValue から最後の文字を削除します。これにより、ユーザーは最後の入力または文字を削除できるようになり、display() 関數(shù)が再度呼び出されて、それに応じて表示が更新されます。

  1. 演算子の検証

Creating a Basic Calculator Using HTML, CSS and JavaScript

この條件は、表示されている現(xiàn)在値に基づいてオペレーターを押すことができるかどうかを検証するために使用されます。

條件 ["%", "/", "*", " "].includes(buttonValue) は、クリックされたボタンが演算子 (%、/、*、) のいずれかであるかどうかを確認(rèn)します。ボタンが演算子の場合、次のチェック if (!displayValue || displayValue === "-") により、ディスプレイが空であるかマイナス記號 (-) のみが含まれている場合には演算子を押すことができないことが確認(rèn)されます。これにより、2 つの演算子が連続する、または演算子で始まるなどのエラーが防止されます。條件が true の場合、関數(shù)は単に戻り、演算子は表示に追加されません。

  1. 連続オペレーターを防止する

Creating a Basic Calculator Using HTML, CSS and JavaScript

このコード ブロックは、連続した演算子が押されるシナリオを処理し、「 」や「 - 」などの無効な入力を防ぎます。

まず、if (["%", "/", "*", " ", "-"].includes(buttonValue)) は、クリックされたボタンが演算子かどうかを確認(rèn)します。次に、 const lastCharacter = displayValue.slice(-1) は、displayValue.

內(nèi)の現(xiàn)在の式の最後の文字を取得します。

次に、lastOperator = buttonValue は、lastOperator 変數(shù)を更新して現(xiàn)在のオペレーターを保存します。 if (["%", "/", "*", " ", "-"].includes(lastCharacter)) によってチェックされるように、最後の文字も演算子である場合、コードは、displayValue.slice() を使用してその文字を削除します。 0、-1)。これにより、式の最後に演算子が 1 つだけ表示され、連続する演算子が追加されることがなくなります。

  1. 小數(shù)點の検証

Creating a Basic Calculator Using HTML, CSS and JavaScript

このコード ブロックは、小數(shù)點 (.) が數(shù)値內(nèi)に 1 回だけ出現(xiàn)できるようにし、「3..5」のような無効な入力を防ぎます。

まず、條件 if (buttonValue === ".") は、クリックされたボタンが小數(shù)點であるかどうかを確認(rèn)します。そうであれば、検証が続行されます。

次に、const lastOperatorIndex = displayValue.lastIndexOf(lastOperator) は、displayValue 內(nèi)の最後の演算子の位置を見つけます。次に、 const currentNumberSet = displayValue.slice(lastOperatorIndex) || displayValue は、最後の演算子の後の displayValue の部分を抽出します。これは、入力されている現(xiàn)在の數(shù)値を表します。演算子がない場合は、displayValue 全體が考慮されます。

最後に、if (currentNumberSet.includes(".")) は、抽出された數(shù)値部分に既に小數(shù)點が含まれているかどうかを確認(rèn)します。存在する場合、関數(shù)は早期に戻り、ユーザーは 2 番目の小數(shù)點を入力できなくなります。これにより、「3.5」のような數(shù)値は有効ですが、「3..5」のような入力は無効であることが保証されます。

  1. 新しい値で表示を更新します:

Creating a Basic Calculator Using HTML, CSS and JavaScript

コードdisplayValue = displayValue buttonValue;押されたボタンの値 (數(shù)字や演算子など) を既存の displayValue 文字列に追加します。これにより、ユーザーが電卓を操作するときに現(xiàn)在の式または數(shù)値が構(gòu)築されます。

ボタンの値を追加した後、display() 関數(shù)が呼び出されて表示が更新され、更新された displayValue が確実に反映されます。これにより、ユーザーが入力した最新の値または式が確実に表示されます。

結(jié)論

この JavaScript コードは、値の表示、計算の実行、入力のクリア、電卓での式の検証のロジックを処理します。ボタンのクリックとキーボード入力の両方で動作します。主な機能には、「=」または「Enter」キーが押されたときの計算の実行、AC (全クリア) および C (最後の文字のクリア) ボタンの処理、連続する演算子や複數(shù)の小數(shù)點などの無効な操作の防止などが含まれます。さらに、各アクションの後に表示が更新されるため、ユーザーには最新の値または式が表示されます。これらの機能を組み合わせることで、機能的でインタラクティブな計算機の基盤が提供されます。

以下は私のデモ リンクですので、自由に完全なコードをチェックアウトしたり、リポジトリを複製したり、ライブ デモを操作したりしてください。コーディングを楽しんでください!
GITHUB - [https://github.com/bigyan1997/calculator]
VERCEL - [https://calculator-delta-sepia-91.vercel.app/]

以上がHTML、CSS、JavaScript を使用した基本的な電卓の作成の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JSで日付と時間を操作する方法は? JSで日付と時間を操作する方法は? Jul 01, 2025 am 01:27 AM

JavaScriptで日付と時間を処理する場合は、次の點に注意する必要があります。1。日付オブジェクトを作成するには多くの方法があります。 ISO形式の文字列を使用して、互換性を確保することをお勧めします。 2。時間情報を取得および設(shè)定して、メソッドを設(shè)定でき、月は0から始まることに注意してください。 3.手動でのフォーマット日付には文字列が必要であり、サードパーティライブラリも使用できます。 4.ルクソンなどのタイムゾーンをサポートするライブラリを使用することをお勧めします。これらの重要なポイントを習(xí)得すると、一般的な間違いを効果的に回避できます。

なぜの下部にタグを配置する必要があるのですか? なぜの下部にタグを配置する必要があるのですか? Jul 02, 2025 am 01:22 AM

PLACSTHETTHETTHE BOTTOMOFABLOGPOSTORWEBPAGESERVESPAGESPORCICALPURPOSESESFORSEO、userexperience、andDesign.1.IthelpswithiobyAllowingseNStoAccessKeysword-relevanttagwithtagwithtagwithtagwithemaincontent.2.iTimrovesexperiencebyepingepintepepinedeeping

DOMでのイベントの泡立ちとキャプチャとは何ですか? DOMでのイベントの泡立ちとキャプチャとは何ですか? Jul 02, 2025 am 01:19 AM

イベントキャプチャとバブルは、DOMのイベント伝播の2つの段階です。キャプチャは最上層からターゲット要素までであり、バブルはターゲット要素から上層までです。 1.イベントキャプチャは、AddEventListenerのUseCaptureパラメーターをTrueに設(shè)定することにより実裝されます。 2。イベントバブルはデフォルトの動作であり、UseCaptureはfalseに設(shè)定されているか、省略されます。 3。イベントの伝播を使用して、イベントの伝播を防ぐことができます。 4.イベントバブルは、動的なコンテンツ処理効率を改善するためにイベント委任をサポートします。 5.キャプチャを使用して、ロギングやエラー処理など、事前にイベントを傍受できます。これらの2つのフェーズを理解することは、タイミングとJavaScriptがユーザー操作にどのように反応するかを正確に制御するのに役立ちます。

JavaScriptアプリケーションのペイロードサイズをどのように削減できますか? JavaScriptアプリケーションのペイロードサイズをどのように削減できますか? Jun 26, 2025 am 12:54 AM

JavaScriptアプリケーションがゆっくりとロードされ、パフォーマンスが低い場合、問題はペイロードが大きすぎることです。ソリューションには、次のものが含まれます。1。コード分割(コードスプリッティング)を使用し、React.lazy()またはビルドツールを介して大きなバンドルを複數(shù)の小さなファイルに分割し、最初のダウンロードを減らすために必要に応じてロードします。 2。未使用のコード(Treeshaking)を削除し、ES6モジュールメカニズムを使用して「デッドコード」をクリアして、導(dǎo)入されたライブラリがこの機能をサポートしていることを確認(rèn)します。 3.リソースファイルを圧縮してマージし、GZIP/BrotliとTerserがJSを圧縮できるようにし、ファイルを合理的にマージし、靜的リソースを最適化します。 4.頑丈な依存関係を交換し、day.jsやフェッチなどの軽量ライブラリを選択します

JavaScriptモジュールの決定的なJSラウンドアップ:ESモジュールvs CommonJS JavaScriptモジュールの決定的なJSラウンドアップ:ESモジュールvs CommonJS Jul 02, 2025 am 01:28 AM

ESモジュールとCommonJSの主な違いは、ロード方法と使用シナリオです。 1.CommonJSは同期的にロードされ、node.jsサーバー側(cè)環(huán)境に適しています。 2.ESモジュールは、ブラウザなどのネットワーク環(huán)境に適した非同期にロードされています。 3。Syntax、ESモジュールはインポート/エクスポートを使用し、トップレベルのスコープに配置する必要がありますが、CommonJSは実行時に動的に呼ばれるrequire/Module.Exportsを使用します。 4.CommonJSは、Expressなどのnode.jsおよびLibrariesの古いバージョンで広く使用されていますが、ESモジュールは最新のフロントエンドフレームワークとnode.jsv14に適しています。 5.混合することはできますが、簡単に問題を引き起こす可能性があります。

node.jsでHTTPリクエストを作成する方法は? node.jsでHTTPリクエストを作成する方法は? Jul 13, 2025 am 02:18 AM

node.jsでHTTPリクエストを開始するには、組み込みモジュール、axios、およびnode-fetchを使用する3つの一般的な方法があります。 1.依存関係のない內(nèi)蔵http/httpsモジュールを使用します。これは基本的なシナリオに適していますが、https.get()を使用してデータを取得したり、.write()を介してPOSTリクエストを送信するなど、データステッチとエラーモニタリングの手動処理が必要です。 2.Axiosは、約束に基づいたサードパーティライブラリです。簡潔な構(gòu)文と強力な機能を備えており、非同期/待ち聲、自動JSON変換、インターセプターなどをサポートします。非同期リクエスト操作を簡素化することをお勧めします。 3.Node-Fetchは、約束と単純な構(gòu)文に基づいて、ブラウザフェッチに似たスタイルを提供します

クリーンで保守可能なJavaScriptコードを書くためのベストプラクティスは何ですか? クリーンで保守可能なJavaScriptコードを書くためのベストプラクティスは何ですか? Jun 23, 2025 am 12:35 AM

クリーンで保守可能なJavaScriptコードを記述するには、次の4つのポイントに従う必要があります。1。クリアで一貫した命名仕様を使用すると、変數(shù)名がカウントなどの名詞で使用され、関數(shù)名はfetchdata()などの動詞で開始され、クラス名はユーザープロファイルなどのパスカルケースで使用されます。 2。過度に長い関數(shù)や副作用を避けてください。各関數(shù)は、ユーザー情報をフォーマットユー、SaveUser、Renderuserに分割するなど、1つのことのみを行います。 3.ページをuserprofile、userstats、その他のウィジェットに分割するなど、モジュール性とコンポーネントを合理的に使用します。 4.主要なロジックとアルゴリズムの選択の説明に焦點を當(dāng)てて、時代までコメントとドキュメントを書く

var vs let vs const:クイックJSラウンドアップ説明 var vs let vs const:クイックJSラウンドアップ説明 Jul 02, 2025 am 01:18 AM

var、let、constの違いは、範(fàn)囲、昇進、繰り返し宣言です。 1.VARは機能範(fàn)囲であり、変動的なプロモーションを備えており、繰り返しの宣言が可能になります。 2.一時的なデッドゾーンを備えたブロックレベルの範(fàn)囲であり、繰り返される宣言は許可されていません。 3.Constはブロックレベルの範(fàn)囲でもあり、すぐに割り當(dāng)てる必要があり、再割り當(dāng)てすることはできませんが、參照型の內(nèi)部値を変更できます。最初にconstを使用し、変數(shù)を変更するときにletを使用し、varの使用を避けます。

See all articles