首页 前端知识 快速使用HTML、CSS、JavaScript编写一个简单计算器

快速使用HTML、CSS、JavaScript编写一个简单计算器

2024-04-22 09:04:20 前端知识 前端哥 386 185 我要收藏

目录

一、编写HTML结构

1.1 创建文件

二、编写CSS样式

2.1 编写好看样式

2.2 引入css样式

三、编写JavaScript逻辑代码

3.1 创建操作文件

3.2 引入js文件

3.3 整体代码

四、运行


一、编写HTML结构

1.1 创建文件

我们在项目目录当中创建一个 名为 index.html的文件,在文件中编写以下内容。

以下主要用到了div块级标签和button按钮, onclick是处理按钮的点击事件。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>香菜的计算器</title>
</head>
<body>
<div class="calculator">
<div class="display" id="display">0</div>
<div class="keys">
<button onclick="appendToDisplay('7')">7</button>
<button onclick="appendToDisplay('8')">8</button>
<button onclick="appendToDisplay('9')">9</button>
<button onclick="operate('+')" class="option">+</button>
<button onclick="appendToDisplay('4')">4</button>
<button onclick="appendToDisplay('5')">5</button>
<button onclick="appendToDisplay('6')">6</button>
<button onclick="operate('-')" class="option">-</button>
<button onclick="appendToDisplay('1')">1</button>
<button onclick="appendToDisplay('2')">2</button>
<button onclick="appendToDisplay('3')">3</button>
<button onclick="operate('*')" class="option">×</button>
<button onclick="appendToDisplay('0')">0</button>
<button onclick="appendToDisplay('.')">.</button>
<button onclick="calculate()" class="option">=</button>
<button onclick="operate('/')" class="option">÷</button>
<button onclick="clearDisplay()" class="option">C</button>
</div>
</div>
</body>
</html>
复制

二、编写CSS样式

2.1 编写好看样式

因为HTML结构是比较单一化的,我们需要使用CSS样式对它进行美化。

首先在根目录下创建一个名为 css的目录, 在css目录下创建 main.css样式文件。

代码如下:

body {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
}
.calculator {
background: rgba(78, 78, 82, 0.5);
border-radius: 10px;
padding: 20px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
.display {
font-size: 2em;
padding: 10px;
background-color: #22242980; /* 50% 半透明 */
text-align: right;
color: #e8e9e9;
border-radius: 5px;
margin-bottom: 10px;
}
.keys {
display: grid;
grid-template-columns: repeat(4, 1fr);
grid-gap: 10px;
}
button {
padding: 10px;
font-size: 1.2em;
border: none;
border-radius: 5px;
background-color: #7a7a7d;
color: #ffffff;
cursor: pointer;
transition: background-color 0.3s;
}
button:hover {
background-color: #d0d0d0;
}
button.option {
background: #ff9727;
}
复制

2.2 引入css样式

 在index.html 文件的 head标签中,我们要引入css样式,编写以下标签。

<link rel="stylesheet" href="css/main.css">
复制

三、编写JavaScript逻辑代码

3.1 创建操作文件

我们现在有了结构和样式,但是缺少具体的操作。需要使用JavaScript来实现具体的计算操作。

首先创建一个名为 js的目录,在js目录下创建calculartor.js文件。

代码如下

// 当前输入的值,初始值为0
let currentInput = "0";
// 当前操作符,默认为null
let currentOperator = null;
// 第一操作数,默认为null
let firstOperand = null;
// 将数字或小数点添加到显示屏上
function appendToDisplay(value) {
if (currentInput === "0" && value !== ".") {
// 如果当前输入为0,并且value不是小数点,直接用value替换currentInput
currentInput = value;
} else {
// 否则,在currentInput后面追加value
currentInput += value;
}
// 更新显示屏上的内容
document.getElementById("display").innerText = currentInput;
}
// 清空显示屏
function clearDisplay() {
currentInput = "0";
document.getElementById("display").innerText = currentInput;
}
// 记录当前操作符,并将当前输入值作为第一操作数
function operate(operator) {
if (currentOperator !== null) {
// 如果当前已经记录有操作符,则先计算结果
calculate();
}
// 记录第一操作数为当前输入值
firstOperand = currentInput;
// 记录当前操作符
currentOperator = operator;
// 将当前输入值重置为0
currentInput = "0";
}
// 根据当前操作符和第二操作数计算结果,并将结果显示在屏幕上
function calculate() {
// 如果当前未记录操作符或第一操作数,则直接返回
if (currentOperator === null || firstOperand === null) return;
let result;
// 获取第二操作数
const secondOperand = currentInput;
// 根据当前操作符进行计算
switch (currentOperator) {
case "+":
result = parseFloat(firstOperand) + parseFloat(secondOperand);
break;
case "-":
result = parseFloat(firstOperand) - parseFloat(secondOperand);
break;
case "*":
result = parseFloat(firstOperand) * parseFloat(secondOperand);
break;
case "/":
result = parseFloat(firstOperand) / parseFloat(secondOperand);
break;
default:
// 如果操作符不是加、减、乘、除,则直接返回
return;
}
// 将计算结果更新为当前输入值
currentInput = result.toString();
// 重置当前操作符和第一操作数
currentOperator = null;
firstOperand = null;
// 更新显示屏上的内容
document.getElementById("display").innerText = currentInput;
}
复制

3.2 引入js文件

在index.html文件中的 body标签下,编写以下内容。

<script src="js/calculartor.js"></script>
复制

3.3 整体代码

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>香菜的计算器</title>
<link rel="stylesheet" href="css/main.css">
</head>
<body>
<div class="calculator">
<div class="display" id="display">0</div>
<div class="keys">
<button onclick="appendToDisplay('7')">7</button>
<button onclick="appendToDisplay('8')">8</button>
<button onclick="appendToDisplay('9')">9</button>
<button onclick="operate('+')" class="option">+</button>
<button onclick="appendToDisplay('4')">4</button>
<button onclick="appendToDisplay('5')">5</button>
<button onclick="appendToDisplay('6')">6</button>
<button onclick="operate('-')" class="option">-</button>
<button onclick="appendToDisplay('1')">1</button>
<button onclick="appendToDisplay('2')">2</button>
<button onclick="appendToDisplay('3')">3</button>
<button onclick="operate('*')" class="option">×</button>
<button onclick="appendToDisplay('0')">0</button>
<button onclick="appendToDisplay('.')">.</button>
<button onclick="calculate()" class="option">=</button>
<button onclick="operate('/')" class="option">÷</button>
<button onclick="clearDisplay()" class="option">C</button>
</div>
</div>
<script src="js/calculartor.js"></script>
</body>
</html>
复制

四、运行

转载请注明出处或者链接地址:https://www.qianduange.cn//article/5754.html
标签
评论
还可以输入200
共0条数据,当前/页
发布的文章

JQuery中的load()、$

2024-05-10 08:05:15

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!