当前位置: 首页 > news >正文

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

网页版简易计算器

目录

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

需求:

用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>
        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="clearDisplay()">C</button>
        <button class="button" onclick="appendNumber('7')">7</button>
        <button class="button" onclick="appendNumber('8')">8</button>
        <button class="button" onclick="appendNumber('9')">9</button>
        <button class="button operator" onclick="setOperation('/')">/</button>
        <button class="button" onclick="appendNumber('4')">4</button>
        <button class="button" onclick="appendNumber('5')">5</button>
        <button class="button" onclick="appendNumber('6')">6</button>
        <button class="button operator" onclick="setOperation('*')">*</button>
        <button class="button" onclick="appendNumber('1')">1</button>
        <button class="button" onclick="appendNumber('2')">2</button>
        <button class="button" onclick="appendNumber('3')">3</button>
        <button class="button operator" onclick="setOperation('-')">-</button>
        <button class="button zero-button" onclick="appendNumber('0')">0</button>
        <button class="button" onclick="appendNumber('.')">.</button>
        <button class="button equals-button" onclick="calculateResult()">=</button>
        <button class="button operator" onclick="setOperation('+')">+</button>
    </div>
</div>

<script>
    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>

效果显示

在这里插入图片描述


若喜欢,请一键三连!

相关文章:

  • scimp包1.7版发布,用于绘制charls加权地图
  • 【R包】tidyplots----取代ggplot2的科研绘图利器
  • JS同步与异步概念及区别
  • Redis 通用命令
  • LangChain 由入门到精通
  • FastAPI系列:Ubuntu部署FastAPI项目实战
  • 用PyTorch从零构建 DeepSeek R1:模型架构和分步训练详解
  • springboot 如何实现发送短信
  • 什么是 Ribbon?
  • WordPress平台如何接入Deepseek,有效提升网站流量
  • Deepseek引爆AI热潮 防静电地板如何守护数据中心安全
  • 通义灵码在跨领域应用拓展之物联网篇
  • 蓝桥杯第十六届嵌入式模拟编程题解析
  • Android TextView 使用.9图片文字不展示
  • 计算机视觉算法实战——跌倒检测(主页有源码)
  • 【前端】【功能函数】treeMapEach,对每个节点进行自定义转换的实用函数
  • 深入理解 CSS pointer-events: none:穿透点击的魔法
  • 前端兼容处理接口返回的文件流或json数据
  • C++ Primer 容器适配器
  • java基础学习
  • 西安免费自助建站模板/中国局势最新消息今天
  • 漳州企业网站建设制作/贵州整站优化seo平台
  • 网站建设的资料的准备/网络推广应该怎么做啊
  • 淘宝客网站返利程序/襄阳网站推广优化技巧
  • 网站如何防止攻击/seo关键词排名优化是什么
  • 电商网站架构设计/百度资源分享网