HTML+CSS+JS制作一个简单的计算器

2023-11-05

用HTML+CSS+JS制作了一个简单的计算器,它的使用类似于生活中使用的计算器。暂时未发现有任何计算上的错误,有问题请联系我,谢谢。

最终成果图:

在这里插入图片描述

HTML代码块:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>计算器</title>
    <link rel="stylesheet" href="./css/normalize_14.css">
    <link rel="stylesheet" href="./css/calculator.css">
</head>

<body>
    <main>
        <table>
            <thead>
                <tr>
                    <th colspan="5">
                        <input type="text" class="result" disabled>
                    </th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>
                        <button onclick="mC()">MC</button>
                    </td>
                    <td>
                        <button onclick="mAdd()">M+</button>
                    </td>
                    <td>
                        <button onclick="mSub()">M-</button>
                    </td>
                    <td>
                        <button onclick="mR()">MR</button>
                    </td>
                </tr>
                <tr>
                    <td>
                        <button onclick="c()">C</button>
                    </td>
                    <td>
                        <button onclick="reverse()">±</button>
                    </td>
                    <td>
                        <button class="calculate" value="/">/</button>
                    </td>
                    <td>
                        <button class="calculate" value="*">*</button>
                    </td>
                </tr>
                <tr>
                    <td>
                        <button class="calculate" value="7">7</button>
                    </td>
                    <td>
                        <button class="calculate" value="8">8</button>
                    </td>
                    <td>
                        <button class="calculate" value="9">9</button>
                    </td>
                    <td>
                        <button class="calculate" value="-">-</button>
                    </td>
                </tr>
                <tr>
                    <td>
                        <button class="calculate" value="4">4</button>
                    </td>
                    <td>
                        <button class="calculate" value="5">5</button>
                    </td>
                    <td>
                        <button class="calculate" value="6">6</button>
                    </td>
                    <td>
                        <button class="calculate" value="+">+</button>
                    </td>
                </tr>
                <tr>
                    <td>
                        <button class="calculate" value="1">1</button>
                    </td>
                    <td>
                        <button class="calculate" value="2">2</button>
                    </td>
                    <td>
                        <button class="calculate" value="3">3</button>
                    </td>
                    <td rowspan="2">
                        <button onclick="equal()">=</button>
                    </td>
                </tr>
                <tr>
                    <td colspan="2">
                        <button class="calculate" value="0">0</button>
                    </td>
                    <td>
                        <button class="calculate" value=".">.</button>
                    </td>
                </tr>
            </tbody>
        </table>
    </main>
    <script src="./js/jquery-2.1.4/jquery.min.js"></script>
    <script src="./js/calculator.js"></script>
</body>

</html>

CSS代码块:

@font-face {
    font-family: "digital";
    src: url(./../font/digital-7_mono.ttf);
}

main {
    background-color: #a6d79a;
    position: fixed;
    width: 100%;
    height: 100%;
}

main>table {
    margin: 50px auto;
    background-color: #f2f2f2;
    border-radius: 5px;
}

main>table>thead>tr>th>input {
    width: 450px;
    height: 60px;
    margin: 10px 0;
    border: 1px solid #eaeaea;
    background-color: #1c1c1c;
    color: white;
    font-family: "digital";
    text-align: right;
    font-size: 28px;
}

main>table>tbody>tr>td>button {
    width: 100px;
    height: 60px;
    margin: 10px;
    color: #3f3f3f;
    outline: none;
    background-color: #f4f4f4;
    border: 1px solid #eaeaea;
}

main>table>tbody>tr>td>button:active {
    border-color: #3f3f3f;
}

main>table>tbody>tr:nth-child(5)>td:nth-child(4)>button {
    width: 100px;
    height: 140px;
}

main>table>tbody>tr:nth-child(6)>td:nth-child(1)>button {
    width: 220px;
    height: 60px;
}

JS代码块:

let arr = [0]; //公式数组
let result = "";   //输入的数字

// 计算器计算
$(document).ready(function () {
    $(".result").val(0);
    $(".calculate").on("click", function () {
        let nums = $(this).val();      //通过按键输入
        if (!isNaN(nums) || nums == ".") {
            if (result == "" && nums == ".") {
                result = "0.";
            } else if(result == "0" && nums == "0") {
                result = "0";
            } else if(result == "0" && nums != "0" && nums != ".") {
                result = "";
                result += nums;
            } else if (!(result.includes(".") && nums == ".")) {
                result += nums;
            }
            $(".result").val(result);
        } else {
            if (arr[1] != null && result != "") {
                arr[2] = $(".result").val();
                let result = calcu(arr[1], arr[0], arr[2]);
                $(".result").val(result);
                arr[0] = result;
                arr[2] = null;
            } else {
                arr[0] = $(".result").val();
            }
            arr[1] = nums;
            result = "";
        }
    });
});

//计算
function calcu(sym, num1, num2) {
    let result = 0;
    num1 = num1 - 0;
    num2 = num2 - 0;
    switch (sym) {
        case "+": {
            result = num1 + num2;
            break;
        }
        case "-": {
            result = num1 - num2;
            break;
        }
        case "*": {
            result = num1 * num2;
            break;
        }
        case "/": {
            result = num1 / num2;
            break;
        }
    }
    return parseFloat(result.toFixed(10));       //取准确小数结果
}

//等号计算
function equal() {
    if (arr[1] != null && result != "") {
        let num = $(".result").val();
        let result = calcu(arr[1], arr[0], num);
        $(".result").val(result);
        arr[0] = result;
        arr[1] = arr[2] = null;
    } else if(arr[1] == null) {
        arr[0] = $(".result").val();
        $(".result").val(arr[0]);
    } else {
        $(".result").val(arr[0]);
        arr[1] = null;
    }
    result = "";
}

//清除屏幕
function c() {
    arr = [0];
    result = "";
    $(".result").val(0);
}

//取相反数
function reverse() {
    let num = $(".result").val();
    $(".result").val(-num);
}

let memory = 0;

//归零目前记忆的数字
function mC() {
    memory = 0;
    result = "";
}

// 记忆当前数字,加入累加数字当中
function mAdd() {
    let addNum = $(".result").val() - 0;
    memory += addNum;
    result = "";    
}

//记忆当前数字,总数扣除当前数字
function mSub() {
    let subNum = $(".result").val() - 0;
    memory -= subNum;
    result = "";    
}

// 将当前计算出来的数字呈现
function mR() {
    $(".result").val(memory);
    result = "";    
}

注:需要代码的也可以从我的主页上传文件中自取。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTML+CSS+JS制作一个简单的计算器 的相关文章

随机推荐

  • c++基础 面向对象:第四篇 (类和对象-封装)

    文章目录 类和对象 类和类的实例化 访问权限 成员属性私有化 封装 类和对象 c 面向对象的三大特性 封装 继承 多态 在c 中 认为万物皆对象 对象有属性和行为 类和类的实例化 在c 中 用关键字 class 去封装对象 语法 class
  • 启动rosbag出现警告TF_OLD_DATA ignoring data from the past for frame odom

  • 华为OD机试 - 寻找相似单词(Java 代码实现)

    题目描述 给定一个可存储若干单词的字典 找出指定单词的所有相似单词 并且按照单词名称从小到大排序输出 单词仅包括字母 但可能大小写并存 大写不一定只出现在首字母 相似单词说明 给定一个单词X 如果通过任意交换单词中字母的位置得到不同的单词Y
  • 【工具应用】关于FileZilla传输文件时的Transfer type设定问题

    在工作中经常会使用FileZilla软件 FTP工具 上传或者下载文件 最近遇到一个下载文件内容异常的问题 涉及到该软件中的Transfer type设置 于是进行了一些深入的学习 在此与君共享 以作前车之鉴 问题概述 在Win10环境下
  • Java多线程中常见错误梳理,新手程序员必看

    很多Java新手在刚接触线程时都会被其复杂的知识点搞晕 在实际应用中同样错误不断 如何才能快速掌握多线程呢 常见的Java多线程错误有哪些 接下来就给大家分享Java新手学习入门中多线程失误梳理 无论是客户端还是服务器端多线程Java程序
  • 永远跟得上时代的Harbor部署

    文章目录 1 安装docker与docker compose 2 安装harbor 3 docker连接harbor 4 常见错误 4 1 401 Unauthorized 4 2 跨域问题 1 安装docker与docker compos
  • 可能是最好的Mac Charles 配置指南

    1 从官网下载最新的Charles https www charlesproxy com download 2 安装Charles 3 破解Charles 利用在线工具生成jar文件替换Charles中原来的charles jar文件 在
  • unity踩坑记录

    1 Unity ScriptableObject生成的asset文件 关闭unity时数据丢失 需要先setdirty EditorUtility SetDirty obj AssetDatabase SaveAssets 同时 保证Scr
  • 如何生成SSH key

    第一步 检查本机是否存在 SSH key 如下图调出Git Bash 窗口 输入下面的命令 ls al ssh 如果有文件id rsa pub 或 id dsa pub 则直接进入步骤3将SSH key添加到GitHub中 否则进入第二步生
  • 龙招港2021高考成绩查询,龙招港黑龙江招生考试信息港2021黑龙江高考志愿填报系统入口...

    龙招港黑龙江招生考试信息港2021黑龙江高考志愿填报系统入口 龙招港黑龙江招生网http www lzk hl cn 是2021黑龙江高考志愿填报官方网站 黑龙江龙招港提供2021黑龙江高考一本二本专科志愿填报系统 2021黑龙江高考各批次
  • 2021年机械、航空航天与汽车工程国际会议(CMAAE)检索通知

    2021年机械 航空航天与汽车工程国际会议 CMAAE 2021 会议已检索
  • 【FreeRTOS】多任务创建

    作者主页 凉开水白菜 作者简介 共同学习 互相监督 热于分享 多加讨论 一起进步 专栏资料 https pan baidu com s 1nc1rfyLiMyw6ZhxiZ1Cumg pwd free 点赞 收藏 再看 养成习惯 订阅的粉丝
  • 蓝桥杯JAVA-28.前缀和与差分详解

    个人博客 www tothefor com 蓝桥杯复习知识点汇总 目录 开始之前 推荐先看一下总结 再看内容 也许会帮你更好的理解 前缀和是指某序列的前n项和 可以把它理解为数学上的数列的前n项和 而差分可以看成前缀和的逆运算 合理的使用前
  • Mybatis最全笔记--今日分享(参考狂神说)

    一 CRUD Mybatis 1 namespace namespace中的包名要和Dao Mapper接口的包名一致 2 select 选择 查询语句 id 就是对应的namespace中的方法名 resultType sql语句执行的返
  • Nginx基本配置(中级)

    文章目录 一 nginx反向代理 1 什么是反向代理 2 nginx代理配置 二 nginx负载均衡 三 nginx缓存 四 nginx优化 1 worker processes 2 worker connections 3 worker
  • 5 分钟让你明白 “软链接” 和“硬链接”的区别

    今天在知乎上看到一篇十分有趣的问题 如何评价微软高级工程师痴迷于soft link这一linux常见概念 虽然又是知名撕逼王曾某的撕逼帖 但是我还是想就题目中链接的问题简单地讲讲 什么是链接 链接简单说实际上是一种文件共享的方式 是 POS
  • 【numpy学习笔记】数组的存储和下载

    1 Saving array in binary format npy gt gt gt a np array 1 2 3 4 5 gt gt gt np save array a a gt gt gt np load array a np
  • 基于单片机的温室大棚环境监测系统设计

    温室大棚对北方反季节蔬菜的种植具有重要意义 据了解全国各地温室大棚使用集中 但是大棚环境调控方式落后 管理落后 生产效率比较低 针对此问题本文提出了一种基于STM32单片机智能温室大棚控制系统方案 实现环境参数的自动检测 以达到智能化 自动
  • EFilm 4.1

    EFilm 4 1 安装文件 Keygen 第一部分 http download csdn net detail crazpro 9696491 第二部分 http download csdn net detail crazpro 9696
  • HTML+CSS+JS制作一个简单的计算器

    用HTML CSS JS制作了一个简单的计算器 它的使用类似于生活中使用的计算器 暂时未发现有任何计算上的错误 有问题请联系我 谢谢 最终成果图 HTML代码块