首页 > 其他分享 >用HTML做计算器

用HTML做计算器

时间:2024-07-04 19:30:23浏览次数:14  
标签:text HTML str 计算器 msg n1 n2 null

用HTML做计算器

前言

由于上节课我们学习了html,今天我们就来练习一下。

开肝

创建基础框架

首先,我们先创建一个新文本文档,并把后缀名改为.html。
在这里插入图片描述
右键,打开方式,选择vscode编辑器。
在这里插入图片描述
vscode界面出现,按下英文问号,一个基础的框架出现了。

构思

按照上节课的构思方法,开始构思。
在这里插入图片描述
我画了张图简单的标了一下一个小框架就出现了,我们要开始搭了。在这里插入图片描述
按下回车。调整一下在这里插入图片描述
把符号文字加一下,把class也加上。
在这里插入图片描述
这是我后来改的class虽然很乱,但是先凑合着看吧,后面还要用,在最后一个div后面加上这一段,加完这一段,你的计算器就可以加减了。

 <script>
        function init() {
            n1 = null
            n2 = null
            flag = null
            n3 = null
        }
        init()
        $('.zero').click(function () {
            init()
            $('.msg').text('')
        })
        $('.per').click(function () {
            str=$('.msg').text()*100
            $('.msg').text(str + '$')
        })
        $('.zf').click(function () {
            str=$('.msg').text()*-1
            $('.msg').text(str)
            if(flag ==null){
                n1 = str
            }else{
                n2 = str
            }
        })
        $('.eq').click(function () {
            if (n1 != null && n2 != null && flag != null) {
                switch (flag) {
                    case '+': n3 = n1 + n2; break;
                    case '-': n3 = n1 - n2; break;
                    case '*': n3 = n1 * n2; break;
                    case '/': n3 = n1 / n2; break;
                }
                $('.msg').text(n3)
                init()
            }
        })
        $('.f').click(function () {
            str = $(this).text()
            if (n1 != null) {
                clear()
                flag=str

            }
            $('.msg').text(str)
        })
        $('.n').click(function () {
            str = $(this).text()
            if (flag == null) {
                if (n1 == null) {
                    clear()

                }
                $('.msg').append(str)
                n1 = $(".msg").text() * 1
            } else {
                if (n2 == null) {
                    clear()


                }
                $('.msg').append(str)
                n2 = $(".msg").text() * 1
            }
            console.log(n1,flag, n2)
        })
        function clear() {
            $(".msg").text(' ')

        }
    </script>

这里不做太多解释,即将一下其工作原理,假如我按下1,它就在变量的最后加上数字1,按下等号是就运算变量里的内容。

修饰

这里直接把代码放上来,我的键盘要冒烟了。

 <style>
        button {
            width: 50px;
            height: 50px;
            background: skyblue;
            border-radius: 50px;
            border: 3px solid #fff;
        }

        .btns {
            width: 200px;
            display: flex;
            flex-wrap: wrap;
        }
        .calc{
            background: linear-gradient(red,orange);
            padding: 20px;
            width: 200px;
        }
        .w {
            width: 100px;
        }

        .msg {
            width: 200px;
            height: 70px;
            line-height: 50px;
            background: #000;
            color: #fff;
            padding: 0 20px;
            box-sizing: border-box;
            border-radius: 20px;
        }
    </style>
    <script src="js/jquery.js"></script>

注意这段代码的最后导入了jquery库,需要安装,最后把jquery放在js文件夹里。但这这节课中不要用,可不下载。

全部代码

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        button {
            width: 50px;
            height: 50px;
            background: skyblue;
            border-radius: 50px;
            border: 3px solid #fff;
        }

        .btns {
            width: 200px;
            display: flex;
            flex-wrap: wrap;
        }
        .calc{
            background: linear-gradient(red,orange);
            padding: 20px;
            width: 200px;
        }
        .w {
            width: 100px;
        }

        .msg {
            width: 200px;
            height: 70px;
            line-height: 50px;
            background: #000;
            color: #fff;
            padding: 0 20px;
            box-sizing: border-box;
            border-radius: 20px;
        }
    </style>
    <script src="js/jquery.js"></script>
</head>

<body>
    <div class="calc">
        <div class="msg">欢迎使用</div>
        <div class="btns">
            <button class="zero">AC</button>
            <button class="zf">+/-</button>
            <button class="per">%</button>
            <button class="f">/</button>
            <button class="n">7</button>
            <button class="n">8</button>
            <button class="n">9</button>
            <button class="f">*</button>
            <button class="n">4</button>
            <button class="n">5</button>
            <button class="n">6</button>
            <button class="f">-</button>
            <button class='n'>1</button>
            <button class='n'>2</button>
            <button class='n'>3</button>
            <button class="f">+</button>
            <button class="w">0</button>
            <button class="f">.</button>
            <button class="eq">=</button>
        </div>
    </div>
    <script>
        function init() {
            n1 = null
            n2 = null
            flag = null
            n3 = null
        }
        init()
        $('.zero').click(function () {
            init()
            $('.msg').text('')
        })
        $('.per').click(function () {
            str=$('.msg').text()*100
            $('.msg').text(str + '$')
        })
        $('.zf').click(function () {
            str=$('.msg').text()*-1
            $('.msg').text(str)
            if(flag ==null){
                n1 = str
            }else{
                n2 = str
            }
        })
        $('.eq').click(function () {
            if (n1 != null && n2 != null && flag != null) {
                switch (flag) {
                    case '+': n3 = n1 + n2; break;
                    case '-': n3 = n1 - n2; break;
                    case '*': n3 = n1 * n2; break;
                    case '/': n3 = n1 / n2; break;
                }
                $('.msg').text(n3)
                init()
            }
        })
        $('.f').click(function () {
            str = $(this).text()
            if (n1 != null) {
                clear()
                flag=str

            }
            $('.msg').text(str)
        })
        $('.n').click(function () {
            str = $(this).text()
            if (flag == null) {
                if (n1 == null) {
                    clear()

                }
                $('.msg').append(str)
                n1 = $(".msg").text() * 1
            } else {
                if (n2 == null) {
                    clear()


                }
                $('.msg').append(str)
                n2 = $(".msg").text() * 1
            }
            console.log(n1,flag, n2)
        })
        function clear() {
            $(".msg").text(' ')

        }
    </script>
</body>

</html>

最后

这篇结束了,有问题的记得私信,敬请期待!

标签:text,HTML,str,计算器,msg,n1,n2,null
From: https://blog.csdn.net/2401_82944012/article/details/140146249

相关文章

  • python爬虫2-HTML文本处理
    HTML文本处理re模式匹配正则表达式是一种强大的字符串匹配和处理工具,允许通过指定的模式来查找、替换和验证字符串。函数编译正则表达式re.compile(pattern,flags=0):将字符串形式的正则表达式编译为一个正则对象,用于后续的匹配操作。匹配操作re.match(pattern,str......
  • html排版标签
    HTML排版标签标题标签标题使用<h1>至<h6>标签进行定义,都是双标签。<h1>定义最大的标题,<h6>定义最小的标题。属性align,属性值可以是:left、center、right。<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname=&qu......
  • HTML5 WebSocket技术使用详解
    HTML5WebSocketAPI提供了一种在单个连接上进行全双工通信的方式。这意味着客户端和服务器可以同时发送和接收数据,而不需要像传统的HTTP请求那样进行多次请求和响应的轮询。WebSocket允许更实时的交互,非常适合需要快速、连续数据交换的应用场景,如在线游戏、实时通讯和股票行......
  • 初识html
    HTML初识HTML的概念html是超文本标记语言,全称是HyperTextMarkupLanguage。它不是一种编程语言,是一种描述性的标记语言作用:HTML是负责描述文档语义的语言概念:超文本两层含义:1、文本理解就是文字,超出文字的比如图片、视频、动画等。2、可以通过链接跳转页面概念:标记语言百......
  • HTML 视频(Video)
     在HTML中播放视频的方法有很多种。HTML视频(Videos)播放实例<videowidth="320"height="240"controls><sourcesrc="movie.mp4"type="video/mp4"><sourcesrc="movie.ogg"type="video/ogg">&l......
  • selenium12_HTML测试报告(run_all)
    在run_all.py中编写如下脚本:#cording:utf-8importunittestimportosfromcommonimportHTMLTestRunner_cn#os.path.dirname:获取当前文件所在的文件夹路径。os.path.realpath(__file__):根据不同的系统自动获取绝对路径,包含文件名cur_path=os.path.dirname(os.p......
  • 禁止双指放大HTML
    //禁用双指放大document.documentElement.addEventListener('touchstart',function(event){if(event.touches.length>1){event.preventDefault()}},{passive:false})//禁用双击放大varlastTouchEnd=0document.documentElement.addEventList......
  • 【JavaScript脚本宇宙】高效Web开发利器:全面解析六大HTML解析器与DOM库
    精益求精:揭秘六个改变Web开发的HTML解析与DOM操作工具前言在现代Web开发中,HTML解析器和DOM操作库是不可或缺的工具。无论是爬取数据、处理复杂的HTML文档,还是模拟浏览器环境,这些工具都扮演着关键角色。本文将深入探讨六个广泛使用的HTML解析器和DOM操作库,它们分别是:htmlpa......
  • html+JavaScript+css 24点计算器
    源代码    采用穷举计算方法讲人话:根据四个数随机列算式,算出来是24就显示在列表里。<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0">&l......
  • HTML页面如何保证背景图缩放大小一致
    HTML页面如何保证背景图缩放大小一致在网页设计中,背景图是一个常见的元素,它可以为网页增添美感和视觉效果。然而,当用户在不同设备上访问网页时,由于屏幕尺寸和分辨率的不同,背景图的缩放大小可能会出现问题。本文将介绍如何使用HTML和CSS来保证背景图在不同设备上缩放大小一致。1.......