使用JavaScript和HTML實(shí)現(xiàn)一個(gè)精美的計(jì)算器
一、前言
計(jì)算器是我們?nèi)粘I钪薪?jīng)常使用的工具之一,可以幫助我們進(jìn)行簡單的數(shù)學(xué)運(yùn)算。在本博文中,我將使用JavaScript編寫一個(gè)漂亮的計(jì)算器,并添加加減乘除功能。這個(gè)計(jì)算器將有一個(gè)精美的用戶界面,包含9個(gè)數(shù)字按鈕和加減乘除操作符。
二、技術(shù)棧
- HTML:負(fù)責(zé)構(gòu)建界面
- CSS:負(fù)責(zé)美化界面
- JavaScript:負(fù)責(zé)實(shí)現(xiàn)計(jì)算器的邏輯
三、功能實(shí)現(xiàn)
3.1 引入樣式
在開始編寫代碼之前,我們需要準(zhǔn)備一些資源,包括一些圖標(biāo)和字體庫。我們可以在網(wǎng)上找到一些開源的資源來使用。在這里,我使用了FontAwesome圖標(biāo)庫和Google Fonts字體庫。
首先,在HTML文件中引入FontAwesome圖標(biāo)庫和Google Fonts字體庫的鏈接:
<head>
<link rel="stylesheet" rel="external nofollow" integrity="sha512-mvHonSS8g/k1XO4z16sWsZUfrVjPDWcTYTLnm79aJMdN5rSTQhq2ShsVlCHJfFMZML3eCG6v8kHouUqimtCM/A==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<link rel="stylesheet" rel="external nofollow" />
</head>3.2 編寫顯示頁面
然后,創(chuàng)建一個(gè)div元素作為計(jì)算器的容器,并在其中添加所需的HTML元素:
<div class="calculator">
<input type="text" id="result" readonly />
<div class="row">
<button class="number">7</button>
<button class="number">8</button>
<button class="number">9</button>
<button class="operator"><i class="fas fa-divide"></i></button>
</div>
<div class="row">
<button class="number">4</button>
<button class="number">5</button>
<button class="number">6</button>
<button class="operator"><i class="fas fa-times"></i></button>
</div>
<div class="row">
<button class="number">1</button>
<button class="number">2</button>
<button class="number">3</button>
<button class="operator"><i class="fas fa-minus"></i></button>
</div>
<div class="row">
<button class="number">0</button>
<button class="operator"><i class="fas fa-plus"></i></button>
</div>
<div class="row">
<button id="clear">C</button>
<button id="equal">=</button>
</div>
</div>頁面效果如圖

3.3 美化計(jì)算器頁面
接下來,使用CSS來美化我們的計(jì)算器界面:
.calculator {
width: 200px;
background-color: #f0f0f0;
padding: 10px;
border-radius: 5px;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
font-family: 'Roboto', sans-serif;
}
input[type="text"] {
width: 100%;
height: 40px;
margin-bottom: 15px;
padding: 10px;
font-size: 20px;
text-align: right;
}
.row {
display: flex;
justify-content: space-between;
margin-bottom: 10px;
}
button {
width: 45px;
height: 45px;
font-size: 16px;
border: none;
border-radius: 5px;
cursor: pointer;
}
.number {
background-color: #e0e0e0;
color: #333;
}
.operator {
background-color: #ff9800;
color: white;
}現(xiàn)在,我們已經(jīng)完成了計(jì)算器的界面。接下來,我們將使用JavaScript來實(shí)現(xiàn)計(jì)算器的邏輯。

3.4 實(shí)現(xiàn)計(jì)算器邏輯
首先,我們需要獲取HTML元素的引用,并設(shè)置一些狀態(tài)變量:
// 獲取HTML元素的引用
const resultInput = document.getElementById("result");
const numberButtons = document.getElementsByClassName("number");
const operatorButtons = document.getElementsByClassName("operator");
const clearButton = document.getElementById("clear");
const equalButton = document.getElementById("equal");
// 設(shè)置狀態(tài)變量
let currentNumber = "";
let firstNumber = "";
let operator = "";然后,我們需要分別為數(shù)字按鈕、操作符按鈕和清除按鈕添加事件監(jiān)聽器,以便在點(diǎn)擊時(shí)執(zhí)行相應(yīng)的操作:
// 為數(shù)字按鈕添加事件監(jiān)聽器
for (let i = 0; i < numberButtons.length; i++) {
numberButtons[i].addEventListener("click", function () {
if (operator === "") {
firstNumber += this.innerText;
resultInput.value = firstNumber;
} else {
currentNumber += this.innerText;
resultInput.value = currentNumber;
}
});
}
// 為操作符按鈕添加事件監(jiān)聽器
for (let i = 0; i < operatorButtons.length; i++) {
operatorButtons[i].addEventListener("click", function () {
operator = this.innerText;
resultInput.value = operator;
});
}
// 為清除按鈕添加事件監(jiān)聽器
clearButton.addEventListener("click", function () {
currentNumber = "";
firstNumber = "";
operator = "";
resultInput.value = "";
});最后,我們需要為等號(hào)按鈕添加事件監(jiān)聽器,以便在點(diǎn)擊時(shí)執(zhí)行相應(yīng)的計(jì)算操作:
// 為等號(hào)按鈕添加事件監(jiān)聽器
equalButton.addEventListener("click", function () {
let result;
switch (operator) {
case "+":
result = parseFloat(firstNumber) + parseFloat(currentNumber);
break;
case "-":
result = parseFloat(firstNumber) - parseFloat(currentNumber);
break;
case "*":
result = parseFloat(firstNumber) * parseFloat(currentNumber);
break;
case "/":
result = parseFloat(firstNumber) / parseFloat(currentNumber);
break;
default:
result = "";
}
// 更新狀態(tài)變量
currentNumber = result.toString();
firstNumber = "";
operator = "";
resultInput.value = result;
});四、總結(jié)
好了,本文的內(nèi)容就分享到這里。 希望你在使用這個(gè)精美計(jì)算器的過程中有所收獲,它不僅能幫助你進(jìn)行基本的數(shù)學(xué)運(yùn)算,還能為你提供一個(gè)愉快的使用體驗(yàn)。如果你對(duì)編程感興趣,也歡迎自行擴(kuò)展功能,讓這個(gè)計(jì)算器變得更加強(qiáng)大。
以上就是使用JavaScript和HTML實(shí)現(xiàn)一個(gè)精美的計(jì)算器的詳細(xì)內(nèi)容,更多關(guān)于JavaScript HTML實(shí)現(xiàn)計(jì)算器的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
JS實(shí)現(xiàn)的論壇Ajax打分效果完整實(shí)例
這篇文章主要介紹了JS實(shí)現(xiàn)的論壇Ajax打分效果,以完整實(shí)例形式分析了JavaScript響應(yīng)鼠標(biāo)事件動(dòng)態(tài)操作頁面元素樣式的相關(guān)技巧,需要的朋友可以參考下2015-10-10
JavaScript解構(gòu)賦值的實(shí)用技巧指南
JavaScript解構(gòu)賦值為我們提供了很多方便,但是用法比較多,本文就來梳理一下,下面這篇文章主要給大家介紹了關(guān)于JavaScript解構(gòu)賦值的實(shí)用技巧指南,需要的朋友可以參考下2022-01-01

