HTML和JavaScript實現一個簡單的計算器

使用HTML和JavaScript實現一個簡單的計算器。

一、繪制鍵盤

<!DOCTYPE html>
<html>
<head><title>Simple Calculator</title><style>.calculator {display: grid;grid-template-columns: repeat(4, 1fr);grid-gap: 5px;padding: 10px;}.calculator button {width: 100%;height: 40px;}</style>
</head>
<body><h1>Simple Calculator</h1><div class="calculator"><button onclick="clearDisplay()">C</button><button onclick="deleteLastCharacter()">&larr;</button><button onclick="appendCharacter('/')">/</button><button onclick="appendCharacter('7')">7</button><button onclick="appendCharacter('8')">8</button><button onclick="appendCharacter('9')">9</button><button onclick="appendCharacter('*')">*</button><button onclick="appendCharacter('4')">4</button><button onclick="appendCharacter('5')">5</button><button onclick="appendCharacter('6')">6</button><button onclick="appendCharacter('-')">-</button><button onclick="appendCharacter('1')">1</button><button onclick="appendCharacter('2')">2</button><button onclick="appendCharacter('3')">3</button><button onclick="appendCharacter('+')">+</button><button onclick="appendCharacter('0')">0</button><button onclick="appendCharacter('.')">.</button><button onclick="calculateResult()">=</button></div><script>var display = "";function appendCharacter(character) {display += character;updateDisplay();}function deleteLastCharacter() {display = display.slice(0, -1);updateDisplay();}function clearDisplay() {display = "";updateDisplay();}function calculateResult() {var result;try {result = eval(display);} catch (error) {result = "Error";}display = result.toString();updateDisplay();}function updateDisplay() {var displayElement = document.getElementById("display");displayElement.textContent = display;}</script>
</body>
</html>

這段代碼會在瀏覽器中創建一個標題為"Simple Calculator"的頁面。頁面頂部有一個 <h1> 元素,用于顯示標題。計算器界面使用了CSS網格布局,將按鈕排列為4列。

在JavaScript部分,定義了一些函數來處理計算器的操作。appendCharacter() 函數用于將字符添加到顯示屏上;deleteLastCharacter() 函數用于刪除最后一個字符;clearDisplay() 函數用于清空顯示屏;calculateResult() 函數用于計算結果,并將結果顯示在顯示屏上;updateDisplay() 函數用于更新顯示屏的內容。

二、完整代碼

<!DOCTYPE html>
<html>
<head><title>Simple Calculator</title><style>.calculator {display: grid;grid-template-columns: repeat(4, 1fr);grid-gap: 5px;padding: 10px;}.calculator button {width: 100%;height: 40px;}</style>
</head>
<body><h1>Simple Calculator</h1><div class="calculator"><input type="text" id="display" readonly><button onclick="appendCharacter('7')">7</button><button onclick="appendCharacter('8')">8</button><button onclick="appendCharacter('9')">9</button><button onclick="appendCharacter('/')">/</button><button onclick="appendCharacter('4')">4</button><button onclick="appendCharacter('5')">5</button><button onclick="appendCharacter('6')">6</button><button onclick="appendCharacter('*')">*</button><button onclick="appendCharacter('1')">1</button><button onclick="appendCharacter('2')">2</button><button onclick="appendCharacter('3')">3</button><button onclick="appendCharacter('-')">-</button><button onclick="appendCharacter('0')">0</button><button onclick="appendCharacter('.')">.</button><button onclick="appendCharacter('+')">+</button><button onclick="deleteLastCharacter()">&larr;</button><button onclick="clearDisplay()">C</button><button onclick="calculateResult()">=</button></div><script>var display = "";function appendCharacter(character) {display += character;updateDisplay();}function deleteLastCharacter() {display = display.slice(0, -1);updateDisplay();}function clearDisplay() {display = "";updateDisplay();}function calculateResult() {var result;try {result = eval(display);} catch (error) {result = "Error";}display = result.toString();updateDisplay();}function updateDisplay() {var displayElement = document.getElementById("display");displayElement.value = display;}</script>
</body>
</html>

代碼在 <div class="calculator"> 中添加了一個 <input> 元素,用于顯示計算器的輸入和結果。這個 <input> 元素使用 readonly 屬性,以防止直接編輯。

以上代碼可以在瀏覽器中運行,可以通過點擊按鈕來輸入數字和運算符。顯示屏會實時更新,能夠計算結果。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/37030.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/37030.shtml
英文地址,請注明出處:http://en.pswp.cn/news/37030.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【elementUi】繪制自定義表格、繪制曲線表格

要求繪制下圖系列表格&#xff1a; 實現步驟: 1.繪制樹&#xff0c;實現樹勾選字段—>表格繪制字段 邏輯&#xff1a; 樹&#xff1a;check-change“treeChart.handleCheckChange” 綁定點擊選擇事件&#xff0c;改變data.column3數據項&#xff1b;表格:columns"data…

基于 Nginx All In One 的 Outline Wiki 部署方法

1. Outline 簡介 官網&#xff1a;https://www.getoutline.com/ Outline 是一個開源的知識庫和團隊協作工具&#x1f9e0;&#xff0c;旨在幫助團隊共享、組織和協作文檔&#x1f4dd;。它提供了一個簡潔的界面&#xff0c;使用戶能夠輕松創建、編輯和查看文檔。 以下是 Out…

Ajax 筆記(四)—— Ajax 進階

筆記目錄 4. Ajax 進階4.1 同步代碼和異步代碼4.2 回調函數地獄4.2.1 解決方法一&#xff1a;Promise 鏈式調用4.2.2 解決方法二&#xff1a;async 函數和 await 4.3 Promise.all 靜態方法4.4 事件循環4.4.1 事件循環4.4.2 宏任務與微任務 4.5 案例4.5.1 案例一-商品分類4.5.2 …

讀書筆記 |【項目思維與管理】? 項目成為一種生存方式

讀書筆記 |【項目思維與管理】? 項目成為一種生存方式 一、理解項目固有的挑戰二、項目對企業的價值三、知識型企業的經營邏輯四、做項目管理的推進者 &#x1f496;The Begin&#x1f496;點點關注&#xff0c;收藏不迷路&#x1f496; 項目無處不在&#xff0c;項目已經成為…

智慧建筑工地平臺,通過信息化技術、物聯網、人工智能技術,實現對施工全過程的實時監控、數據分析、智能管理和優化調控

智慧工地是指通過信息化技術、物聯網、人工智能技術等手段&#xff0c;對建筑工地進行數字化、智能化、網絡化升級&#xff0c;實現對施工全過程的實時監控、數據分析、智能管理和優化調控。智慧工地的建設可以提高工地的安全性、效率性和質量&#xff0c;降低施工成本&#xf…

分布式唯一ID實戰

目錄 一、UUID二、數據庫方式1、數據庫生成之簡單方式2、數據庫生成 - 多臺機器和設置步長&#xff0c;解決性能問題3、Leaf-segment 方案實現4、雙 buffer 優化5、Leaf高可用容災 三、基于Redis實現分布式ID四、雪花算法 一、UUID UUID的標準形式包含32個16進制數字&#xff…

Word 2019打開.doc文檔后圖片和公式不顯示(呈現為白框)的解決辦法

Word 2019打開.doc文檔后圖片和公式不顯示&#xff08;呈現為白框&#xff09;的解決辦法 目錄 Word 2019打開.doc文檔后圖片和公式不顯示&#xff08;呈現為白框&#xff09;的解決辦法一、問題描述二、解決方法1.打開 WORD 2019&#xff0c;點擊菜單中的“文件”&#xff1b;…

微服務05-Sentinel流量防衛兵

隨著微服務的流行,服務和服務之間的穩定性變得越來越重要。Sentinel 是面向分布式、多語言異構化服務架構的流量治理組件,主要以 流量 為切入點,從流量路由、流量控制、流量整形、熔斷降級、系統自適應過載保護、熱點流量防護等多個維度來幫助開發者保障微服務的穩定性。 S…

FBB簡介

FBB FBB簡介FBB組網名詞解釋FBB組網&#xff08;從下至上&#xff09;小結 FBB簡介 FBB&#xff1a;Fixed BroadBand&#xff0c;固定寬帶網絡&#xff0c;是一種依托線纜介質進行傳輸的地面有線網絡&#xff0c;區分與MBB&#xff0c;MBB是移動網絡。 MBB是天上一張網&#x…

學習Vue:簡介和優勢

什么是 Vue.js&#xff1f; Vue.js 是一個用于構建用戶界面的漸進式 JavaScript 框架。它專注于視圖層&#xff0c;并且可以輕松地集成到現有的項目中。Vue.js 的設計理念是漸進式&#xff0c;這意味著您可以根據項目的需要逐步引入 Vue.js&#xff0c;從而更好地控制應用的復…

專注于創意設計,為您的小程序和網站建設帶來更多的可能性

隨著移動互聯網的快速發展&#xff0c;越來越多的企業開始關注小程序和網站建設&#xff0c;以此來拓展業務和提升品牌形象。 在這個領域中&#xff0c;創意設計扮演著關鍵的角色。它不僅可以幫助企業打造獨特的形象和品牌&#xff0c;還能夠提高用戶體驗和購買決策的效率。 因…

Openlayers 實戰 - 地圖視野(View)- 圖層 -(layer)- 資源(source)顯示等級設置。

Openlayers 實戰 - 地圖視野&#xff08;View&#xff09;- 圖層 -&#xff08;layer&#xff09;- 資源&#xff08;source&#xff09;顯示等級設置。 問題原因核心代碼完整代碼&#xff1a;在線示例 在以往的項目維護中&#xff0c;出現一個問題&#xff0c;使用最新高清底圖…

已有公司將ChatGPT集成到客服中心以增強用戶體驗

Ozonetel正在利用ChatGPT來改善客戶體驗。該公司表示&#xff0c;他們通過使用ChatGPT收集與客戶互動過程收集的“語料”能夠更有針對性地提高服務效率&#xff0c;提供個性化的用戶體驗&#xff0c;并實現更高的客戶滿意度。[1] 通過這套解決方案&#xff0c;客服中心將擁有一…

javascript寫一個簡單的閉包例子

當你在JavaScript中創建一個閉包時&#xff0c;你可以將函數定義在另一個函數的內部&#xff0c;并從外部函數中返回該函數。以下是一個簡單的閉包示例&#xff1a; function outerFunction() {var outerVariable "I am from the outer function";function innerFu…

vue 圖片轉pdf

嘗試了集中圖片轉pdf的方式&#xff0c; &#xff08;1&#xff09;最終較為優秀的一種是使用jspdf將圖片轉為pdf&#xff0c;支持JPG/JPEG/PNG/BMP/TIF/TIFF圖片格式轉換&#xff0c;詳見我的另一篇文章&#xff1a; https://blog.csdn.net/Ann_52547/article/details/1322149…

MybatisPlus查詢結果返回值為null

1、問題描述 返回值為null&#xff0c;程序不報錯&#xff0c;但是條數好像是正確的。我出現問題的代碼如下&#xff1a; 1、自定義類StudentMapper繼承了BaseMapper接口 public interface StudentMapper extends BaseMapper<Student> { } 2、使用StudentMapper中的s…

centos 定時腳本檢測tomcat是否啟動,未啟動情況下重新啟動

編寫腳本 tomcatMonitor.sh #!/bin/sh. /etc/profile . ~/.bash_profile#首先用ps -ef | grep tomcat 獲得了tomcat進程信息&#xff0c;這樣出來的結果中會包含grep本身&#xff0c; #因此通過 | grep -v grep 來排除grep本身&#xff0c;然后通過 awk {print $2}來打印出要…

Struts2一次請求參數問題的記錄

最近&#xff0c;一次前端正常請求&#xff0c;但后臺出現請求參數值的變化&#xff0c;導致報錯&#xff0c;問題如下&#xff1a; 從入參request中查看請求參數&#xff0c;是一個Json字符串&#xff0c;其中有個description的鍵值對&#xff1b; 但是&#xff0c;接下來調用…

【需求輸出】用戶故事方法

文章目錄 1、初識用戶故事2、用戶故事是描述需求的最好方式3、創建用戶故事4、用戶故事的分層管理5、編寫用戶故事的工具 1、初識用戶故事 2、用戶故事是描述需求的最好方式 3、創建用戶故事 4、用戶故事的分層管理 5、編寫用戶故事的工具

軟件測試基礎之軟件缺陷處理

一、什么是缺陷 不滿足用戶確定需求、影響軟件功能實現的問題、故障 缺陷就是人們通常所說的bug。 ex.一下哪一種選項不屬于軟件缺陷___。 A.軟件沒有實現產品規格說明所要求的功能 B.軟件中出現了產品規格說明不應該出現的功能 C.軟件實現了產品規格說明沒有提到的功能 D.軟…