HTML+CSS+JS实现简单计算器

2023-10-27

      本文运用前端代码实现一个简单的计算器界面,并通过JS实现了基本的运算功能。(加、减、乘、除、清屏/退格、取余、取倒)

1.编写前端界面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>我的计算器</title>
    <style>
        .containor{
            border:1px solid black;
            background-color: #fafafa;
            height: 380px;
            width: 296px;
            margin: auto;
            margin-top: 40px;
        }
        .top{
            background-color: lightgray;
            height: 30px;
        }
        a{
            display: block;
            float: left;
            font-size: 8px;
            height: 26px;
            padding: 0 6px;
            margin-left: 6px;
            line-height: 26px;
        }

        a:hover{
            background-color: dimgray;
            color: white;
            cursor: default;
        }

        .input{
            width: 86%;
            height:60px;
            padding: 4px;
            margin: 0 auto;
            margin-top: 12px;
        }
        .input:focus{
            outline: none;
        }
        button{
            width: 50px;
            height: 30px;
            margin: 2px;
            text-align: center;
            font-size: 10px;
            border: 0.5px solid gray;

        }
        button:hover{
            border: 1px solid gray;
            background-color: #ffaa55;
            outline: none;
        }
        .bottom{
            width: 100%;
            height: 30px;
            background-color:lightgray;
            color: white;
            position: relative;
            margin-top: 56px;
        }
    </style>
</head>
<body>
    <div class="containor">
        <div class="top">
                <a>查看(V)</a>
                <a style="margin-left: 40px;">编辑(E)</a>
                <a style="margin-left: 40px;">帮助(H)</a>
        </div>
        <div style="text-align: center">
            <input id="cin" class="input">
        </div>

        <div style="margin-left: 2px;">
            <div style="margin:20px 10px;height:160px;">
                <div style="float: left;">
                    <div>
                        <button>MC</button><button>MR</button><button>MS</button><button>M+</button><button>M-</button><br>
                        <button>BK</button><button>CE</button><button>C</button><button >(</button><button>)</button><br>
                        <button>7</button><button>8</button><button>9</button><button >*</button><button>/</button><br>
                        <button>4</button><button>5</button><button>6</button><button >%</button><button>1/x</button><br>
                    </div>
                   <div style="float: left;">
                        <button>1</button><button>2</button><button>3</button><button>-</button><br>
                        <button style="width: 104px">0</button><button>.</button><button>+</button>
                    </div>
                    <div style="float: left;">
                        <button style="height: 64px;margin-top: 2px">=</button>
                    </div>
                </div>

            </div>
        </div>
        <div class="bottom">

        </div>
    </div>

</body>
</html>

 界面如下:

2.通过JS实现计算器功能

  • 在需要实现功能的地方添加相应的函数点击事件

                        <button onclick="back1()">BK</button><button onclick="clearerr()">CE</button><button onclick="clear1()">C</button><button onclick="inputStr('(')">(</button><button onclick="inputStr(')')">)</button><br>
                        <button onclick="inputStr(7)">7</button><button onclick="inputStr(8)" >8</button><button onclick="inputStr(9)">9</button><button onclick="inputStr('*')">*</button><button onclick="inputStr('/')">/</button><br>
                        <button onclick="inputStr(4)">4</button><button onclick="inputStr(5)">5</button><button onclick="inputStr(6)">6</button><button onclick=inputStr('%')>%</button><button onclick="reciprocal()">1/x</button><br>
                        <button onclick="inputStr(1)">1</button><button onclick="inputStr(2)">2</button><button onclick="inputStr(3)">3</button><button onclick="inputStr('-')">-</button>
                        <button onclick="inputStr(0)">0</button><button onclick="inputStr('.')">.</button><button onclick="inputStr('+')">+</button>
                        <button onclick="equal()">=</button>
  •  对函数进行初始化
<script>
    window.onload=function(){
        // 初始化内容
        var res = eval("(1+4)*2");
        console.log(res); 
        //打印进行测试
    }
</script>
  •  实现输入框的输入(数字、小数点、运算符、括号)
 <input id="cin" class="input">



<script>
     function inputStr(c) {
        var cin = document.getElementById("cin");
        var val = cin.value + c;
        cin.value = val;
    }
</script>
  •  等于号的实现
function equal() {
        var cin = document.getElementById("cin");
        var val = cin.value;
        var res = eval(val);
        cin.value = res;
    }
  •  清屏C 、退格BK、错误回退CE的实现
 function clear1() {
        var cin = document.getElementById("cin");
        cin.value = "";
        // if(cin.value.length>0){
        //     document.getElementById("cin").value = "";
        // }
    }
    function back1() {
        var cin = document.getElementById("cin");
        cin.value = cin.value.substr(0,cin.value.length -1);
    }
    function clearerr() {
        var cin = document.getElementById("cin");
        var val = cin.value;
        var index = val.lastIndexOf("-");
        if(index===-1){
            index = val.lastIndexOf("+");
        }
        if(index===-1){
            index = val.lastIndexOf("*");
        }
        if(index===-1){
            index = val.lastIndexOf("/");
        }
        if(index!==-1){
            val = val.substring(0,index+1);
        }

        cin.value = val;
    }
  •  倒数的实现
function reciprocal() {
        var cin = document.getElementById("cin");
        var rst = 1/cin.value;
        cin.value = rst;
    }

目前 查看、编辑、帮助以及按钮的首行功能还未实现,可自行添加。

 

点我进群     一起学习交流!

QQ群:741909960   

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

HTML+CSS+JS实现简单计算器 的相关文章

随机推荐

  • 青春有你-Java基础篇(2.5)

    Java基础篇 2 5 2 Java基础知识 泛型 泛型与继承 类型擦除 泛型中 KTVE object 等的含义 泛型各种用法 List lt Object gt List
  • 【教程】支持WebDAV的网盘TeraCloud+Zotero同步应用

    目录 0 TeraCloud网盘简介 1 注册操作步骤 2 开启WebDAV 3 WebDAV应用举例 Zotero文献管理软件 4 总结 0 TeraCloud网盘简介 TeraCloud是一个日本品牌的网盘 支持WebDAV 这极大地方
  • RIDE屏蔽INFO级别的日志输出

    RIDE屏蔽INFO级别的日志输出 最近参与自动化测试项目 项目测试内容包括软硬件 内容较复杂 每执行一个测试用例就输出了数万条INFO类型日志 严重影响测试人员查看日志 也影响了用例执行速度 因此需要减少不必要的日志输出 粗略看了一下 修
  • 在线作答编程——输入输出测试

    在线作答编程 输入输出测试 进行了总结 转载请注明链接 有问题请及时联系博主 Alliswell WP 问题描述 在线作答编程 需要自己处理输入输出 建议你进行在线oj输入输出练习 https ac nowcoder com acm con
  • 列举做副业月入3W+的公众号大佬

    3分享一些我平时关注的优秀号主 由深耕技术多年的老兵运营 与你分享技术干货 成长经验 很多时候大家不是不努力 而是缺乏对应的学习方法 以及高手指点 这些公众号也有很多干货资料 帮助你学习 表哥有话讲 国内最大的数据从业者分享平台 20W程序
  • 分析我关于路由协议的一些技术感想

    1 OSPF是在IP包里的 五种不同类型的OSPF包 Hello LSR LSU LSAck DD 又是由再进一层的ospf packetheader进行区分的 ABR一般都会有一个接口在Area0中 且对于不同的Area有不同的LSDB
  • “跨国视频造假窝点”曝光!这个大规模数据集,帮AI揪出99%换脸视频

    乾明 郭一璞 发自 凹非寺 量子位 报道 公众号 QbitAI 上回说到 奥巴马deepfake怼川普 斯嘉丽怒斥网友假视频 deepfake 视频造假神器 把一个人的脸庞 转移到另一个的身上 让假新闻轻松传播到全网 这下 不管是政要还是明
  • nginx基础学习(七):nginx+keepalived搭建主备nginx高可用服务

    目前最后一篇关于nginx的文章 这篇文章是做一个知识的了解 在实际生产中基本不使用 因为这种方式有更好的替代方案 但是为什么要说一下呢 面试的时候问到nginx的内容肯定都会问关于nginx的宕机问题 然后如何去防治 提高nginx服务的
  • unity三种图片格式

    本文转载自 http blog csdn net caption deng article details 52366907 ARGB 是一种色彩模式 也就是RGB色彩模式附加上Alpha 透明度 通道 常见于32位位图的存储结构 RGB
  • 爬虫基础—Session和Cookie

    个人简介 作者简介 大家好 我是W chuanqi 一个编程爱好者 个人主页 W chaunqi 支持我 点赞 收藏 留言 愿你我共勉 若身在泥潭 心也在泥潭 则满眼望去均是泥潭 若身在泥潭 而心系鲲鹏 则能见九万里天地 文章目录 第1章
  • 系统架构设计师-软件架构设计(1)

    目录 一 软件架构的概念 1 架构的本质 2 架构的作用 二 架构发展历史 三 架构的 4 1 视图 1 逻辑视图 Logical View 2 开发视图 Development View 3 进程视图 Process View 4 物理视
  • 2023年26家大厂Java面试题整理了360道(分布式+微服务+高并发)

    前言 2023年的金三银四还有不到1个月的时间就结束了 这两个月 你收获了多少 前段时间一直有粉丝问我 有没有今年一些大厂Java面试题总结 最新抽时间整理了一些 分享给大家 大家一起共享学习 由于文章太长 有些解析没有详细列出 文末有获取
  • C++的STL库常用API--list

    list的简介 list是一个双向链表容器 可高效地进行插入删除元素 list不可以随机存取元素 所以不支持at pos 函数与 操作符 list使用之前的准备 include
  • Android 代码混淆

    Android混淆最佳实践 1 混淆配置 因为开启混淆会使编译时间变长 所以debug模式下不开启 我们需要做的是 1 将release下minifyEnabled的值改为true 打开混淆 2 加上shrinkResources true
  • 机器学习——LR(线性回归)、LRC(线性回归分类)与人脸识别

    忆如完整项目 代码详见github https github com yiru1225 转载标明出处 勿白嫖 star for projects thanks 目录 系列文章目录 一 LR的概念 原理与LR用于简单数据的预测 1 LR简介
  • oracle杂记---运维常用

    查看索引是否被使用 绝不妥协绝不低头 博客园 ORACLE 动态执行SQL语句 Eric Zhai ITeye博客
  • 程序猿关注的微信公众号和网站

    36氪 wow36kr 功能介绍 36氪 36Kr com 是中国领先的科技新媒体 我们报道最新的互联网科技新闻以及最有潜力的互联网创业企业 账号主体 北京协力筑成传媒科技有限公司 商标保护 氪 36 硅发布 guifabucom 功能介绍
  • ios 浏览器can't find variable:wx完美解决

    问题描述 通过以下插件发现报错 can t find variable wx ios 浏览器 wx config debug false appId appId timestamp timestamp nonceStr nonceStr s
  • 虚拟机基于寄存器基于栈的概念和区别

    基于寄存器与基于栈的虚拟机 什么是虚拟机 虚拟机是借助于操作系统对物理机器的一种模拟 但是我们今天所讲述的虚拟机概念比较狭义 与vmware或者virtual box不同 而是针对具体语言所实现的虚拟机 例如在JVM或者CPython中 J
  • HTML+CSS+JS实现简单计算器

    本文运用前端代码实现一个简单的计算器界面 并通过JS实现了基本的运算功能 加 减 乘 除 清屏 退格 取余 取倒 1 编写前端界面