【javascript】有计算功能的简易计算器

news2025/2/26 7:00:46

在这里插入图片描述
外观不满意,可以自行修改。
主要用到的有:grid布局 js原生 阿里字体图标 eval函数

eval() 函数计算 JavaScript 字符串,并把它作为脚本代码来执行。

如果参数是一个表达式,eval() 函数将执行表达式。如果参数是Javascript语句,eval()将执行 Javascript 语句。
代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>计算器</title>
</head>
<link rel="stylesheet" href="fonts/iconfont.css">

    <style>
        *{padding:0; margin:0;}
        #count{
            width: 258px;
            height: 452px;
            background-color: #fff;
            margin: 100px auto;
            border-radius:20px;
            border:2px solid black;
            box-shadow: 0 0 3px 1px black;
            background-color: rgba(43, 10, 10,0.1);
        }
        .number{
            display: grid;
            gap:5px;
        grid-auto-flow: row dense;
        grid-template-rows: repeat(5,60px);
        grid-template-columns: repeat(4,50px);
        justify-content: center;

        }
        .cbt{
            text-align: center;
            font-size: 20px;
            border:1px solid black;
            cursor: pointer;
            color:rgb(16, 15, 14);
            font-weight: 600;
           text-align: center;
           line-height: 60px;
           font-family: Arial, Helvetica, sans-serif;
           box-shadow: 0 0 3px 1px black;
         background-color: rgba(43, 10, 10,0.1);
         border-radius: 10px;
        }
        #count #inp{
            font-size: 20px;
            color:#fff;
            line-height: 40px;
            text-align: center;
            font-weight: 800;
            margin-top:30px;
            margin-left:18px;
            width: 220px;
            height: 40px;
            /* box-shadow: 0 0 3px 1px black; */
            border-radius: 10px;
            margin-bottom:10px;
         background-color: rgba(117, 223, 18, 0.2);

        }
        #dy{
            height: 123px;
            line-height: 123px;
        }
        .green{
        color:rgb(23, 70, 23);
        background: gray;
        }
        .blue{
            color:rgb(36, 36, 67);
            background: yellow;
        }
    </style>
<body>
<div id="count">
    <input type="text" id="inp">
    <div class="number">
    <span class="cbt green" onclick="clickbt()">C</span>
    <span class="cbt green"onclick="clickbt()">/</span>
    <span class="cbt green"onclick="clickbt()">*</span>
    <span class="iconfont 
    icon-backspace cbt blue"onclick="back()" id="back"></span>
    <span class="cbt"onclick="clickbt()">7</span>
    <span class="cbt"onclick="clickbt()">8</span>
    <span class="cbt"onclick="clickbt()">9</span>
    <span class="cbt blue"onclick="clickbt()">-</span>
    <span class="cbt"onclick="clickbt()">4</span>
    <span class="cbt"onclick="clickbt()">5</span>
    <span class="cbt"onclick="clickbt()">6</span>
    <span class="cbt blue"onclick="clickbt()">+</span>
    <span class="cbt"onclick="clickbt()">1</span>
    <span class="cbt"onclick="clickbt()">2</span>
    <span class="cbt"onclick="clickbt()">3</span>
    <span id="dy" class="cbt blue"onclick="getCount()">=</span>
    <span class="cbt"onclick="clickbt()">%</span>
    <span class="cbt"onclick="clickbt()">0</span>
    <span class="cbt"onclick="clickbt()">.</span>
</div>
</div>
</body>
<script>
    var backs=document.getElementById("back");
var einp=document.querySelector("#inp");
var clickbt=function(e) {
    //取得点击的对象元素
    var tg=event.target;
    // 让输入框的值进行相加
    // einp.value=einp.value+tg.innerHTML;
    if(tg.innerHTML=="C"){
        einp.value=" ";}
        else  {
       
einp.value=einp.value+tg.innerHTML;
    }
}
//通过eval函数实现求和
var getCount=function() {
    einp.value=eval(einp.value);
}
var back=function(e) {
    var tg=event.target;
    if(tg.innerHTML==backs.innerHTML){
        if(einp.value !==0){
           einp.value=einp.value.substring(0, einp.value.length - 1);
        }
    }
}
</script>
</html>

里面还有功能未完善,比如回退,遇到小数点不会自动删除
以及,小数点可以多次输入,这些都还需要完善

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/155958.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vmware 16 安装 Anolis 8.6

Vmware 安装 Anolis一.Anoliso镜像下载二.Vmware虚拟机安装Anolisos1.新建自定义2.稍后安装操作系统3.选择系统4.设置虚拟机名称和安装位置5.按需修改磁盘大小6.最后点击完成即可7.编辑虚拟机设置8.选择镜像8.开启虚拟机9.安装10.设置root密码并开始安装11.完成后重启12.登录三…

Mysql底层原理与性能调优

在工作中&#xff0c;公司就线上生产环节&#xff0c;有没有时常碰到过一些慢SQL查询&#xff0c;那我相信大多时候第一时间想到的优化策略&#xff0c;我相信肯定就是索引&#xff0c;可能第一时间就会想到&#xff0c;看一下SQL是不是有加合适的索引&#xff0c;它的条件里面…

1.3 认识程序开发

文章目录1.程序开发流程1.1 软件定义期&#xff08;研究分析阶段&#xff09;1.2 软件开发期&#xff08;开发阶段&#xff09;1.3 软件上线期&#xff08;部署运行阶段&#xff09;2.认识浏览器2.1 浏览器如何实现访问网站的&#xff1f;2.2 HTTP协议2.3 URL地址的构成2.4 如何…

C++/Qt 小知识记录2

工作中遇到的一些小问题&#xff0c;总结的小知识记录&#xff1a;C/Qt 小知识RGBA/ARGB转16进制颜色int与RGB互转int转Hex值VS2015代码粗略统计QTableWidget设置列宽设置整行选中Item设置可选中但不可编辑C std路径相关操作文件写出绝对路径转为相对路径字符替换打印出GBK的平…

OAuth 2.0(四):手把手带你写代码接入 OAuth 2.0 授权服务

一、业务背景 近期团队帮银行做了一个互动营销活动&#xff0c;活动入口在行方的 App 上&#xff0c;当用户在行方 App 点击活动 banner 页跳转活动的时候参与。 在进活动之前作为业务方自然需要知道参与活动的人是谁&#xff0c;如何给它构建登录态。 这就是为什么橘长这边需…

Node.js--》详解express中的身份认证

目录 Web开发模式 身份认证 Session认证机制 在Express中使用Session认证 JWT认证机制 在Express中使用JWT Web开发模式 目前主流的Web开发模式有两种&#xff1a; 基于服务端渲染的传统Web开发模式 服务端渲染的概念&#xff1a;服务器发送给客户端的HTML页面&#x…

【JavaEE】进入Web开发的世界-CSS

目录 一、CSS的基本规则 二、HTML中如何引入CSS规则&#xff08;html资源如何和css资源产生联系&#xff09; 三、选择器&#xff08;selector&#xff09;规则 3.1各种选择器 3.2普通选择器使用 3.3选择器之间的优先级规则(即覆盖规则) 3.4进一步的选择器规则 3.5伪类…

测试必会 Docker 实战(一):掌握高频命令,夯实内功基础

在 Dokcer 横空出世之前&#xff0c;应用打包一直是大部分研发团队的痛点。在工作中&#xff0c;面对多种服务&#xff0c;多个服务器&#xff0c;以及多种环境&#xff0c;如果还继续用传统的方式打包部署&#xff0c;会浪费大量时间精力。在 Docker 出现后&#xff0c;它以更…

Java设计模式-外观模式Facade

介绍 外观模式&#xff08;Facade&#xff09;&#xff0c;也叫“过程模式&#xff1a;外观模式为子系统中的一组接口提供一个一致的界面&#xff0c;此模式定义了一个高层接口&#xff0c;这个接口使得这一子系统更加容易使用外观模式通过定义一个一致的接口&#xff0c;用以…

回溯法--n皇后问题

回溯法有两个模板--子集树、排列树&#xff0c;他们有回溯法的共同特点&#xff1a;深度优先搜索&#xff0c;如果一条路走不通&#xff0c;再退回来&#xff08;类似递归&#xff09;问题描述八皇后问题的历史八皇后问题最早是由国际象棋棋手马克斯贝瑟尔&#xff08;Max Bezz…

常用的字符串与内存操作函数(2)

Tips 1. 2. strerror() 1. C语言的库函数在运行的时候&#xff0c;如果发生错误&#xff0c;就会将错误码存在一个变量里面。这个变量就是&#xff1a;errno&#xff08;全局变量&#xff09;。 2. 这个函数的功能在于把错误码转化为对应的错误信息&#xff0c;错误信息…

macOS 13.2 开发者预览版 Beta2(22D5038i)发布

黑果魏叔 1 月 11 日消息&#xff0c;苹果今日向 Mac 电脑用户推送了 macOS 13.2 开发者预览版 Beta 2 更新&#xff08;内部版本号&#xff1a;22D5038i&#xff09;&#xff0c;本次更新距离上次发布隔了 27 天。macOS Ventura 带来了台前调度、连续互通相机、FaceTime 通话接…

纯CSS输入区域下划线

使用纯CSS实现文本输入的下划线&#xff0c;简洁有效&#xff0c;实现效果&#xff1a; 实现方式 实现方式也很简单&#xff1a; background: linear-gradient(#999 1px, transparent 0) 0 -1px/100% 2em; 例子代码&#xff1a; <!DOCTYPE html> <html lang"e…

【C语言航路】第十站:指针(三)深刻理解指针运算

目录 一、深刻理解指针和数组 1.一维数组 2、字符数组 &#xff08;1&#xff09;字符变量存放到数组中 &#xff08;2&#xff09;字符串存放到字符数组 &#xff08;3&#xff09; 字符串存放到一个指针中 3.二维数组 二、指针与数组经典笔试题 1.题1 2.题2 3.题3…

MCU-51:单片机之红外遥控(外部中断)

目录一、红外遥控简介二、硬件电路三、基本发送与接收四、NEC码五、代码演示5.1 红外遥控5.2 红外遥控电机调速注意&#xff1a;一定要看一、红外遥控简介 红外发射装置 也就是通常我们说的红外遥控器是由键盘电路、红外编码电路、电源电路和红外发射电路组成。红外发射电路的…

爬虫逆向之字体反爬(一)、镀金的天空-字体反爬-1

题目地址&#xff1a;http://www.glidedsky.com/level/crawler-font-puzzle-1 写一下之前处理过的几个字体反爬实战&#xff0c;也是很常见的一种反爬类型&#xff0c;这是第一篇 先来看一下题目 源码拿到的数字&#xff0c;和实际显示在网页的数字&#xff0c;明显不一样的 …

相见恨晚的 IDEA 使用技巧,能让你的代码飞起来

Live Templates 是什么&#xff0c;听上去感觉挺玄乎的。有的同学用过之后觉得简直太好用了&#xff0c;不能说大大提高了开发效率吧&#xff0c;至少也是小小的提高一下&#xff0c;节省了很多敲重复代码的时间。有的同学用过之后说&#xff1a;没什么用&#xff0c;奇技淫巧罢…

C语言_程序环境和预处理

目录 1. 程序的翻译环境 2. 程序的执行环境 3. C语言程序的翻译链接 4. 预编译过程详解 4.1 预定义符号介绍 4.1.1 __FILE__ //进行编译的源文件 4.1.2 __LINE__//文件当前的行号 4.1.3 __DATE__//文件被编译的日期 4.1.4 __TIME__//文件被编译的时间 4.1.5 __STDC__…

基于python的学生信息管理系统

《学生信息管理系统》程序使用说明在IDLE中运行《学生信息管理系统》即可进入如图1所示的系统主界面。在该界面中可以选择要使用功能对应的菜单进行不同的操作。在选择功能菜单时&#xff0c;有两种方法&#xff0c;一种是输入1&#xff0c;另一种是按下键盘上的↑或↓方向键进…

【Javascript】高阶函数,JSON,forEach,map,filter,reduce函数

❤️ Author&#xff1a; 老九 ☕️ 个人博客&#xff1a;老九的CSDN博客 &#x1f64f; 个人名言&#xff1a;不可控之事 乐观面对 &#x1f60d; 系列专栏&#xff1a; 文章目录高阶函数箭头函数apply函数JSONfilter函数map函数总结reduce函数find/findIndex函数every/some函…