Java入门级小案例:网页版简易计算器

news/2025/2/26 5:03:42

网页版简易计算器

目录

    • 网页版简易计算器
    • 需求:
    • 代码实现:
    • 效果显示

需求:

用HTML、CSS、JS进行书写一个具备一定功能的简易计算器。

代码实现:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Calculator</title>
    <style>css">
        body {
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            background-color: #f4f4f9;
            margin: 0;
            font-family: 'Roboto', sans-serif;
        }
        .calculator {
            width: 350px;
            padding: 30px;
            border-radius: 20px;
            box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1);
            background-color: #fff;
        }
        .display {
            width: 100%;
            height: 60px;
            margin-bottom: 20px;
            text-align: right;
            padding-right: 20px;
            font-size: 28px;
            border: none;
            border-radius: 10px;
            background-color: #e0e0e0;
            box-shadow: inset 0 5px 10px rgba(0, 0, 0, 0.1);
            color: #333;
        }
        .buttons {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 15px;
        }
        .button {
            padding: 25px;
            font-size: 20px;
            border: none;
            border-radius: 10px;
            cursor: pointer;
            transition: background-color 0.3s, transform 0.3s;
            box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1);
            background-color: #f0f0f0;
            color: #333;
        }
        .button:hover {
            background-color: #ddd;
            transform: translateY(-2px);
        }
        .operator {
            background-color: #ff9500;
            color: white;
        }
        .operator:hover {
            background-color: #e68a00;
        }
        .zero-button {
            grid-column: span 2;
        }
        .clear-button {
            background-color: #d9534f;
            color: white;
        }
        .clear-button:hover {
            background-color: #c9302c;
        }
        .equals-button {
            background-color: #28a745;
            color: white;
        }
        .equals-button:hover {
            background-color: #218838;
        }
    </style>
</head>
<body>
<div class="calculator">
    <input type="text" class="display" id="display" disabled>
    <div class="buttons">
        <button class="button clear-button" onclick="javascript language-javascript">clearDisplay()">C</button>
        <button class="button" onclick="javascript language-javascript">appendNumber('7')">7</button>
        <button class="button" onclick="javascript language-javascript">appendNumber('8')">8</button>
        <button class="button" onclick="javascript language-javascript">appendNumber('9')">9</button>
        <button class="button operator" onclick="javascript language-javascript">setOperation('/')">/</button>
        <button class="button" onclick="javascript language-javascript">appendNumber('4')">4</button>
        <button class="button" onclick="javascript language-javascript">appendNumber('5')">5</button>
        <button class="button" onclick="javascript language-javascript">appendNumber('6')">6</button>
        <button class="button operator" onclick="javascript language-javascript">setOperation('*')">*</button>
        <button class="button" onclick="javascript language-javascript">appendNumber('1')">1</button>
        <button class="button" onclick="javascript language-javascript">appendNumber('2')">2</button>
        <button class="button" onclick="javascript language-javascript">appendNumber('3')">3</button>
        <button class="button operator" onclick="javascript language-javascript">setOperation('-')">-</button>
        <button class="button zero-button" onclick="javascript language-javascript">appendNumber('0')">0</button>
        <button class="button" onclick="javascript language-javascript">appendNumber('.')">.</button>
        <button class="button equals-button" onclick="javascript language-javascript">calculateResult()">=</button>
        <button class="button operator" onclick="javascript language-javascript">setOperation('+')">+</button>
    </div>
</div>

<script>javascript">
    let currentInput = '';
    let previousInput = '';
    let operation = null;

    function appendNumber(number) {
        if (number === '.' && currentInput.includes('.')) return;
        currentInput += number;
        updateDisplay();
    }

    function setOperation(op) {
        if (currentInput === '') return;
        if (previousInput !== '') {
            calculateResult();
        }
        operation = op;
        previousInput = currentInput;
        currentInput = '';
    }

    function calculateResult() {
        let result;
        const prev = parseFloat(previousInput);
        const current = parseFloat(currentInput);
        if (isNaN(prev) || isNaN(current)) return;
        switch (operation) {
            case '+':
                result = prev + current;
                break;
            case '-':
                result = prev - current;
                break;
            case '*':
                result = prev * current;
                break;
            case '/':
                result = prev / current;
                break;
            default:
                return;
        }
        currentInput = result.toString();
        operation = null;
        previousInput = '';
        updateDisplay();
    }

    function clearDisplay() {
        currentInput = '';
        previousInput = '';
        operation = null;
        document.getElementById('display').value = '';
    }

    function updateDisplay() {
        document.getElementById('display').value = currentInput;
    }
</script>
</body>
</html>

效果显示

在这里插入图片描述


若喜欢,请一键三连!


http://www.niftyadmin.cn/n/5867990.html

相关文章

keycloak - 开发环境的配置持久化

keycloak - 开发环境的配置持久化 前情提要&#xff1a; Keycloak - docker 运行 & 前端集成 本来是想顺便试一下 Okta 集成的&#xff0c;但是发现 Okta 没有本地的 docker 镜像&#xff0c;他们毕竟是做 Identity as a service……算了…… 更新后的 docker compose 如…

zookeeper从入门到精通

一、入门基础 1.1 什么是 ZooKeeper ZooKeeper 是一个开源的分布式协调服务&#xff0c;由雅虎创建&#xff0c;后成为 Apache 的顶级项目。它为分布式应用提供了高效、可靠的协调服务&#xff0c;例如统一命名服务、配置管理、分布式锁、集群管理等。ZooKeeper 的数据模型类…

网络安全实入门| 剖析HTTP慢速攻击(Slowloris)与Nginx防护配置

一、HTTP慢速攻击的核心原理 HTTP慢速攻击&#xff08;如Slowloris&#xff09;是一种应用层拒绝服务攻击&#xff08;DoS&#xff09;&#xff0c;其核心在于合法但缓慢地占用服务器资源&#xff0c;导致正常请求无法被处理。攻击者通过以下方式实现目标&#xff1a; 协议漏洞…

计算机视觉算法实战——文档扫描与 OCR(主页有源码)

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ 一、领域简介✨✨ 文档扫描与 OCR&#xff08;Optical Character Recognition&#xff09; 是计算机视觉的核心应用之一&#xff0c;旨在将物…

【行业解决方案篇五】【DeepSeek智慧城市:交通流量预测系统】

一、为什么红绿灯总和你作对? 早高峰的十字路口,左转车道排了200米,直行车道却空荡荡——这不是交管局的阴谋,而是传统交通管理系统就像用"算盘预测股票",根本处理不了21世纪的海量数据。DeepSeek的交通流量预测系统,则像是给城市装上了"预知未来的望远镜…

vue3 Props的使用

Props是什么&#xff1f; 官方地址&#xff1a;Props | Vue.js 在 Vue 中&#xff0c;props 是父组件向子组件传递数据的一种机制。 props 是子组件中定义的自定义属性&#xff0c;父组件通过这些属性向子组件传递数据。 它们是单向数据流的一部分&#xff0c;意味着数据只能…

【NLP 23、预训练语言模型】

人类发明后悔&#xff0c;来证明拥有的珍贵 —— 25.1.15 Bert的优势&#xff1a;① 预训练思想 ② Transformer模型结构 一、传统方法 VS 预训练方式 Pre-train&#xff1a; ① 收集海量无标注文本数据 ② 进行模型预训练&#xff0c;并在任务模型中使用 Fine-tune&#xff1a…

DeepSeek开源周Day1:FlashMLA引爆AI推理性能革命!

项目地址&#xff1a;GitHub - deepseek-ai/FlashMLA 开源日历&#xff1a;2025-02-24起 每日9AM(北京时间)更新&#xff0c;持续五天&#xff01; ​ 一、开源周震撼启幕 继上周预告后&#xff0c;DeepSeek于北京时间今晨9点准时开源「FlashMLA」&#xff0c;打响开源周五连…