HTML制作计算器(四)

JavaScript 是互联网上最流行的脚本语言,这门语言可用于 HTML 和 web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。

  • JavaScript 是一种轻量级的编程语言。
  • JavaScript 是可插入 HTML 页面的编程代码。
  • JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。
  • JavaScript 很容易学习。

由此可见,在互联网领域,尤其是做前端,JavaScript是一门极为重要的语言。它被嵌入HTML页面后,可以用来规定网页的行为。

在HTML文件中使用script标签可以插入JavaScript代码例如:

<script>
/* JavaScript代码 */
</script> 

也可引用外部的脚本文件而不是直接嵌入JavaScript来添加脚本,方法同样是利用script标签,但是要设置它的“src”属性,将它设为脚本文件的地址。如:

    <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>

如果使用 “src” 属性,则 “script” 元素必须是空的。

在本项目中,我们需要使用JavaScript来实现:

  • 按键信息的获取
  • 数值的运算
  • 输入输出框内容的修改和显示

代码如下:

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>计算器</title>
    <style type="text/css">
        #outBord {
            border-style: solid;
            width: 292px;
            height: 374px;
            color: rgb(192, 192, 192);
            background-color: rgb(192, 192, 192);
        }
        
        .input1 {
            background-color: rgb(233, 233, 233);
            padding: 0px;
            width: 292px;
            height: 50px;
            border: none;
            margin: 0px 0px 2px;
            font-size: 20px;
            color: rgb(100, 100, 100);
        }
        
        .input2 {
            text-align: right;
            margin: 2px 0px 0px;
        }
        
        .button {
            background-color: rgb(233, 233, 233);
            width: 70px;
            height: 50px;
            border: none;
            margin: 2px 0px;
            font-size: 20px;
            color: rgb(100, 100, 100);
        }
        
        .button1:hover {
            background-color: rgb(192, 192, 192);
            color: white;
        }
        
        .button0 {
            width: 144px;
            height: 50px;
        }
    </style>
</head>

<body>
    <div id="outBord">
        <div>
            <input class="input1" id="input">
        </div>
        <div style="height: 54px;">
            <input class="input1 input2" type="button" id="output">
        </div>
        <div>
            <div>
                <button id="button_AC" class="button button1" onclick="once_click_AC()">AC</button>
                <button id="button_C" class="button button1" onclick="once_click_C()">C</button>
                <button id="button_%" class="button button1" onclick="once_click_operater('%')">%</button>
                <button id="button_/ " class="button button1 " onclick="once_click_operater('/')">/</button>
            </div>
            <div>
                <button id="button_7 " class="button button1 " onclick="once_click_number('7')">7</button>
                <button id="button_8 " class="button button1 " onclick="once_click_number('8')">8</button>
                <button id="button_9 " class="button button1 " onclick="once_click_number('9')">9</button>
                <button id="button_* " class="button button1 " onclick="once_click_operater('*')">*</button>
            </div>
            <div>
                <button id="button_4 " class="button button1 " onclick="once_click_number('4')">4</button>
                <button id="button_5 " class="button button1 " onclick="once_click_number('5')">5</button>
                <button id="button_6 " class="button button1 " onclick="once_click_number('6')">6</button>
                <button id="button_- " class="button button1 " onclick="once_click_operater('-')">-</button>
            </div>
            <div>
                <button id="button_1 " class="button button1 " onclick="once_click_number('1')">1</button>
                <button id="button_2 " class="button button1 " onclick="once_click_number('2')">2</button>
                <button id="button_3 " class="button button1 " onclick="once_click_number('3')">3</button>
                <button id="button_+ " class="button button1 " onclick="once_click_operater('+')">+</button>
            </div>
            <div>
                <button id="button_0 " class="button button1 button0 " onclick="once_click_number('0')">0</button>
                <button id="button_. " class="button button1 " onclick="once_click_number('.')">.</button>
                <button id="button_=" class=" button button1 " onclick="once_click_operater('=')">=</button>
            </div>
        </div>
    </div>
    <script type="text/javascript">
        var para1 = "";
        var para2 = "";
        var resault = "";
        var operator = "";
        var flowControl = 0;

        function once_click_AC() {
            para1 = "";
            para2 = "";
            resault = "";
            operator = "";
            flowControl = 0;
            show_expression();
        }

        function once_click_C() {
            if (flowControl == 0) {
                para1 = "";
            } else if (flowControl == 1) {
                para2 = "";
            } else if (flowControl == 2) {
                resault = "";
            }
            show_expression();
        }

        function once_click_number(date) {
            if (flowControl == 0) //
            {
                para1 += date;
            } else if (flowControl == 1) {
                para2 += date;
            } else if (flowControl == 2) {
                flowControl = 0;
                para1 = "";
                para2 = "";
                resault = "";
                operator = "";
                para1 += date;
            }
            show_expression();
        }

        function canculate_resualt() {
            var paraInt1 = parseFloat(para1);
            var paraInt2 = parseFloat(para2);
            var resaultInt;
            if (!((operator == "") || (para2 == ""))) {
                if (operator == "+") {
                    resaultInt = paraInt1 + paraInt2;
                } else if (operator == "-") {
                    resaultInt = paraInt1 - paraInt2;
                } else if (operator == "*") {
                    resaultInt = paraInt1 * paraInt2;
                } else if (operator == "/") {
                    resaultInt = paraInt1 / paraInt2;
                } else if (operator == "%") {
                    resaultInt = paraInt1 % paraInt2;
                }
                resault = resaultInt.toString();
                return true;
            } else {
                return false;
            }

        }

        function show_expression() {
            var inputBox = para1 + operator + para2;
            document.getElementById("input").value = inputBox;
            document.getElementById("output").value = resault;
        }

        function once_click_operater(oper) {
            if (flowControl == 0) //
            {
                if (!(para1 == "")) {
                    operator = oper;
                    flowControl++;
                }
            } else if (flowControl == 1) {
                if (oper == "=") {
                    if (canculate_resualt() == true) {
                        flowControl = 2;
                    }
                } else {
                    if (canculate_resualt() == true) {
                        para1 = resault;
                        para2 = "";
                        resault = "";
                        operator = oper;
                    }
                }
            } else if (flowControl == 2) {
                if (!(oper == "=")) {
                    para1 = resault;
                    para2 = "";
                    resault = "";
                    operator = oper;
                    flowControl = 1;
                } else {
                    if (canculate_resualt() == true) {
                        flowControl = 2;
                    }
                }
            }
            show_expression();
        }
    </script>
</body>

</html>

函数once_click_AC()、once_click_C()、once_click_number()、once_click_operater()实现按键信息的采集和响应,canculate_resualt()计算结果,show_expression()显示输入输出框。

效果大致如下:
在这里插入图片描述

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的基于 HTMLCSSJavaScript计算器示例: HTML 代码: ``` <!DOCTYPE html> <html> <head> <title>计算器</title> <link rel="stylesheet" href="style.css"> </head> <body> <div class="calculator"> <div class="display"> <input type="text" class="input" id="result" readonly> </div> <div class="buttons"> <button onclick="clearResult()">C</button> <button onclick="backspace()">←</button> <button onclick="insertSymbol('/')">÷</button> <button onclick="insertSymbol('*')">×</button> <button onclick="insertSymbol('7')">7</button> <button onclick="insertSymbol('8')">8</button> <button onclick="insertSymbol('9')">9</button> <button onclick="insertSymbol('-')">-</button> <button onclick="insertSymbol('4')">4</button> <button onclick="insertSymbol('5')">5</button> <button onclick="insertSymbol('6')">6</button> <button onclick="insertSymbol('+')">+</button> <button onclick="insertSymbol('1')">1</button> <button onclick="insertSymbol('2')">2</button> <button onclick="insertSymbol('3')">3</button> <button onclick="calculate()">=</button> <button onclick="insertSymbol('0')">0</button> <button onclick="insertSymbol('.')">.</button> </div> </div> <script src="script.js"></script> </body> </html> ``` CSS 代码: ``` .calculator { width: 300px; margin: 100px auto; border: 1px solid #ccc; border-radius: 5px; box-shadow: 2px 2px 5px #ccc; padding: 10px; } .display { background-color: #f7f7f7; border-radius: 5px; padding: 5px; margin-bottom: 10px; } .input { width: 100%; font-size: 24px; text-align: right; border: none; outline: none; } .buttons button { width: 50px; height: 50px; border-radius: 5px; border: none; margin: 5px; font-size: 24px; background-color: #f7f7f7; cursor: pointer; } .buttons button:hover { background-color: #ccc; } ``` JavaScript 代码: ``` let result = document.getElementById("result"); function insertSymbol(symbol) { result.value += symbol; } function clearResult() { result.value = ""; } function backspace() { result.value = result.value.slice(0, -1); } function calculate() { result.value = eval(result.value); } ``` 这个计算器支持加、减、乘、除、小数点、回退、清除和计算等基本操作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值