HTML和JavaScript实现一个简单的计算器

使用HTML和JavaScript实现一个简单的计算器。

一、绘制键盘

html 复制代码
<!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() 函数用于更新显示屏的内容。

二、完整代码

html 复制代码
<!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 属性,以防止直接编辑。

以上代码可以在浏览器中运行,可以通过点击按钮来输入数字和运算符。显示屏会实时更新,能够计算结果。

相关推荐
低代码布道师1 小时前
Next.js 16 全栈实战(一):从零打造“教培管家”系统——环境与脚手架搭建
开发语言·javascript·ecmascript
鹏北海-RemHusband2 小时前
从零到一:基于 micro-app 的企业级微前端模板完整实现指南
前端·微服务·架构
LYFlied2 小时前
AI大时代下前端跨端解决方案的现状与演进路径
前端·人工智能
光影少年2 小时前
AI 前端 / 高级前端
前端·人工智能·状态模式
一位搞嵌入式的 genius2 小时前
深入 JavaScript 函数式编程:从基础到实战(含面试题解析)
前端·javascript·函数式
anOnion2 小时前
构建无障碍组件之Alert Dialog Pattern
前端·html·交互设计
choke2332 小时前
[特殊字符] Python 文件与路径操作
java·前端·javascript
云飞云共享云桌面2 小时前
高性能图形工作站的资源如何共享给10个SolidWorks研发设计用
linux·运维·服务器·前端·网络·数据库·人工智能
Deng9452013142 小时前
Vue + Flask 前后端分离项目实战:从零搭建一个完整博客系统
前端·vue.js·flask
威迪斯特2 小时前
Flask:轻量级Web框架的技术本质与工程实践
前端·数据库·后端·python·flask·开发框架·核心架构