首页 > 其他分享 >用jquery写一个简单的计算器

用jquery写一个简单的计算器

时间:2024-11-17 12:14:05浏览次数:3  
标签:jquery show text nowNumber 计算器 value result 简单 div

闲来无事,练练手

样式比较随意,效果图如下:

HTML部分

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>计算器</title>
    <link rel="stylesheet" type="text/css" href="index.css">
</head>
<body>
    <div class="frame">
        <div class="show-in-div"></div>
        <div class="show-result-div">0</div>
        <div class="key-div" onclick="symbol('%')">%</div>
        <div class="key-div" onclick="clearValue('CE')">CE</div>
        <div class="key-div" onclick="clearValue('C')">C</div>
        <div class="key-div" onclick="clearValue('D')">删除</div>
        <div class="key-div" onclick="symbol('⅟')">⅟</div>
        <div class="key-div" onclick="symbol('x²')">x²</div>
        <div class="key-div" onclick="symbol('√')">√</div>
        <div class="key-div" onclick="operator('÷')">÷</div>
        <div class="key-div" onclick="clickNumber(7)">7</div>
        <div class="key-div" onclick="clickNumber(8)">8</div>
        <div class="key-div" onclick="clickNumber(9)">9</div>
        <div class="key-div" onclick="operator('×')">×</div>
        <div class="key-div" onclick="clickNumber(4)">4</div>
        <div class="key-div" onclick="clickNumber(5)">5</div>
        <div class="key-div" onclick="clickNumber(6)">6</div>
        <div class="key-div" onclick="operator('-')">-</div>
        <div class="key-div" onclick="clickNumber(1)">1</div>
        <div class="key-div" onclick="clickNumber(2)">2</div>
        <div class="key-div" onclick="clickNumber(3)">3</div>
        <div class="key-div" onclick="operator('+')">+</div>
        <div class="key-div" onclick="symbol('+/-')">+/-</div>
        <div class="key-div" onclick="clickNumber(0)">0</div>
        <div class="key-div" onclick="symbol('.')">.</div>
        <div class="key-div" onclick="operator('=')">=</div>
    </div>
    <script src="jquery.min.js"></script>
    <script src="index.js"></script>
</body>
</html>

CSS部分

.frame{
    width: 300px;
    height: 400px;
    border: 1px solid black;
    border-radius: 10px;
}
.show-result-input{
    margin: 5px 0 0 2px;
    width: 290px;
    height: 100px;
    border: none;
    outline: none;
    text-align: right;
    direction : ltr;
    font-size: 45px;
}
.show-in-div{
    width: 295px;
    height: 50px;
    font-size: 25px;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: flex-end;
    color: darkgray;
}
.show-result-div{
    width: 295px;
    height: 50px;
    font-size: 45px;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: flex-end;
}
.key-div{
    margin: 6px;
    float: left;
    width: 61px;
    height: 35px;
    text-align: center;
    line-height: 35px;
    border: 1px solid black;
    font-size: 15px;
}

JS部分

// 监听键盘
$(document).on('keydown', function (event){
    if (!isNaN(event.key)){
        clickNumber(event.key);
    }
    // 删除
    if (event.key === 'Backspace'){
        clearValue('D');
    }
    // 小数点
    if (event.key === '.'){
        symbol(event.key);
    }
    // 运算符
    if (event.key === '+' || event.key === '-' || event.key === '='){
        operator(event.key);
    }
    if (event.key === '*'){
        operator('×');
    }
    if (event.key === '/'){
        operator('÷');
    }
})
// 数字点击
function clickNumber(number){
    const nowNumber = $(".show-result-div").text();
    if (nowNumber !== '0'){
        $('.show-result-div').text(nowNumber+number);
    }else {
        $('.show-result-div').text(number);
    }
}
// 清除值
function clearValue(value){
    if (value === 'C'){
        $('.show-in-div').text('');
        $('.show-result-div').text('0');
    }
    if (value === 'CE'){
        $('.show-result-div').text('0');
    }
    if (value === 'D'){
        let nowNumber = $(".show-result-div").text();
        if (nowNumber !== '0'){
            nowNumber = nowNumber.slice(0, -1);
            if (nowNumber === ''){
                nowNumber = '0';
            }
            $('.show-result-div').text(nowNumber);
        }
    }
}
// 运算符
function operator(value){
    let beforeNumber = $(".show-in-div").text();
    let nowNumber = $(".show-result-div").text();
    if (nowNumber === ''){
        return false;
    }
    if (beforeNumber === ''){
        $('.show-in-div').text(nowNumber+value);
        $('.show-result-div').text('');
    }else {
        const beforeOperator = beforeNumber.substring(beforeNumber.length - 1);
        beforeNumber = parseFloat(beforeNumber.slice(0, -1));
        nowNumber = parseFloat(nowNumber);
        if (beforeOperator === '+'){
            nowNumber = beforeNumber + nowNumber;
        }
        if (beforeOperator === '-'){
            nowNumber = beforeNumber - nowNumber;
        }
        if (beforeOperator === '×'){
            nowNumber = beforeNumber * nowNumber;
        }
        if (beforeOperator === '÷'){
            if (nowNumber === 0){
                return false;
            }
            nowNumber = beforeNumber / nowNumber;
        }
        if (value === '='){
            $('.show-in-div').text('');
            $('.show-result-div').text(nowNumber);
        }else {
            $('.show-in-div').text(nowNumber+value);
            $('.show-result-div').text('');
        }
    }
}
// 其他符号
function symbol(value){
    let nowNumber = $(".show-result-div").text();
    nowNumber = parseFloat(nowNumber);
    // 小数点
    if (value === '.'){
        if (Number.isInteger(nowNumber)){
            nowNumber = nowNumber+'.';
        }
    }
    // 百分号
    if (value === '%'){
        nowNumber = nowNumber / 100;
    }
    // x分之一
    if (value === '⅟'){
        if (nowNumber === 0){
            return false;
        }
        nowNumber = 1 / nowNumber;
    }
    // 平方
    if (value === 'x²'){
        nowNumber = nowNumber * nowNumber;
    }
    // 平方根
    if (value === '√'){
        nowNumber = Math.sqrt(nowNumber);
    }
    // 正负
    if (value === '+/-'){
        nowNumber = nowNumber > 0 ? -nowNumber : Math.abs(nowNumber);
    }
    $('.show-result-div').text(nowNumber);
}

上边就是全部代码咯,写得比较随意,将就看了嘿嘿

标签:jquery,show,text,nowNumber,计算器,value,result,简单,div
From: https://blog.csdn.net/zkxiaoxiangzhu/article/details/143770649

相关文章

  • 2022鹏城杯-简单取证
    2022鹏城杯-简单取证[鹏城杯2022]简单取证查看信息,找文件vol.py-ffile.rawimageinfovol.py-ffile.raw--profile=WinXPSP2x86filescan|grepjpg导出来vol.py-ffile.raw--profile=WinXPSP2x86dumpfiles-Q0x0000000002325028-D./..去010显示是BASE64,赛博厨子一把梭......
  • CODESYS可视化标准计算器制作详细案例(一)
    #制作一个在可视化界面可用于标准计算器功能详细案例#前言:在可视化界面或触摸屏上,很少有带计算器功能的脚本程序,当我们在工控现场需要使用计算器时,往往依靠电脑或手机上的计算器,如果把计算器的功能移值到界面上,或者为PLC提供一个计算公式,那么,非常方便的即时使用,也可以将结......
  • 简单选择排序
     假设要排序的序列元素个数为n,简单选择排序的思路为:第一趟从第一个元素开始,在未排序的n个元素中选出最小元素,将其与序列第一个元素交换;第二趟从第二个元素开始,在未排序的n-1个元素中,选出最小元素,将其与本趟的第一个元素交换,以此类推,经过n-1趟,形成了从小到大的已排序序列。 ......
  • 什么?掌握 UniApp 页面路由竟如此简单!
    引言UniApp是一个跨平台的开发框架,提供了很多实用的API来帮助开发者处理跨平台的需求,尤其是页面路由相关的功能。页面路由API使得页面跳转、返回等操作变得更加简单且高效,特别适用于在小程序、H5、App等平台之间进行页面管理。本文将详细介绍UniApp提供的页面路由......
  • 手把手教你用C语言写一个简单的quine(输出自身的程序)
    第一步,写个简单的框架#include<stdio.h>intmain(){ printf("#include<stdio.h>\nintmain(){\n\tprintf();\n\treturn0;\n}"); return0;}printf的东西先留空。这时你会发现printf里面的东西需要是这句东西本身,如果把这句话复制进去,你会发现最内层还存在一个空的括号,反......
  • MySQL简单索引
    前言索引的核心作用是加速数据查询。它通过减少查询所需扫描的数据量、支持快速定位数据、优化排序和分组操作,以及加速复杂的连接查询,显著提升数据库的性能。1.普通索引createindex语法  table_name要加速的表明(column_name表的列表)     这是最基础的索引类......
  • 使用 Neko 编程语言实现简单的滑动验证码识别
    滑动验证码是一种常见的安全验证方式,要求用户将图块拖动到正确位置。本文将使用Neko编程语言实现一个简单的滑动验证码识别程序,通过基本的图像处理技术自动识别图块匹配位置。实现步骤加载图片:使用Neko的图像处理库加载滑块和背景图片。图像预处理:转换为灰度图并进行边缘......
  • 删除的文件如何恢复? 5种简单数据恢复方法分享
    数据丢失是一个严重的问题,是数字世界中令人不快的一部分,它会不时影响许多计算机用户。当数据(文件)被意外删除或某些原因导致数据损坏时,可能会发生数据丢失。病毒、物理损坏或格式错误会使数据无法被人类和软件读取。幸运的是,即使您没有备份已删除的文件,数据恢复软件也可以帮助......
  • electron视频音频处理简单说明
    属于一个总结,一般我们都是使用navigator.mediaDevices.getUserMedia+desktopCapturer集成,但是getUserMedia对于音频的捕捉是有一些问题的(audio为true会有bug)基于sessionsetDisplayMediaRequestHandler推荐基于此方法,可以灵活的实现音视频的捕捉处理,win.webContents.ses......
  • C++编程:实现一个简单的消息总线
    文章目录0.引言1.设计思路1.1关键类设计1.2类图1.3时序图1.4流程图2.代码结构与设计2.1消息回调与订阅项2.2消息总线类`MessageBus`2.3定时任务调度器`PeriodicTaskScheduler`3.核心功能实现3.1消息发布3.2超时检查4.测试代码0.引言在之前的文......