【通过html+css+js写一个计算器的功能】

效果图:

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>计算器</title>
    <style>
        td:hover {
            background-color: bisque; /* 颜色变深的效果 */
            transition: background-color 0.3s; /* 添加过渡效果 */
        }
    </style>
</head>
<body>
    <!-- cellspacing:单元格与单元格之间的距离;  cellpadding:单元格和文本之间的距离 -->
    <!-- beige米色 -->
    <table border="5" cellspacing="8" cellpadding="13" align="center" bgcolor="beige">
        <!-- 标题 -->
        <caption>计算器</caption>
        <!-- 第1行 -->
        <tr>
            <td colspan="4" align="left" height="18" bgcolor="bisque" id="result"></td>
        </tr>
        <!-- 第2行 -->
        <tr>
            <td align="center" style="width: 30px;" onclick="operate(this)">/</td>
            <td align="center" style="width: 30px;" onclick="getNumber(this)">(</td>
            <td align="center" style="width: 30px;" onclick="getNumber(this)">)</td>
            <td align="center" style="width: 30px;"  onclick="del()"><img src="./删除.png" alt=""></td>
        </tr>
        <!-- 第3行 -->
        <tr>
            <td align="center" onclick="getNumber(this)">7</td>
            <td align="center" onclick="getNumber(this)">8</td>
            <td align="center" onclick="getNumber(this)">9</td>
            <td align="center" onclick="operate(this)">*</td>
        </tr>
        <!-- 第4行 -->
        <tr>
            <td align="center" onclick="getNumber(this)">4</td>
            <td align="center" onclick="getNumber(this)">5</td>
            <td align="center" onclick="getNumber(this)">6</td>
            <td align="center" onclick="operate(this)">-</td>
        </tr>
        <!-- 第5行 -->
        <tr>
            <td align="center" onclick="getNumber(this)">1</td>
            <td align="center" onclick="getNumber(this)">2</td>
            <td align="center" onclick="getNumber(this)">3</td>
            <td align="center" onclick="operate(this)">+</td>
        </tr>
        <!-- 第6行 -->
        <tr>
            <td align="center" onclick="delAll()">C</td>
            <td align="center" onclick="getNumber(this)">0</td>
            <td align="center" onclick="getNumber(this)">.</td>
            <td align="center" onclick="equal(this)">=</td>
        </tr>
    </table>

    <script>
        let numArr = [];
        let result = document.getElementById('result');

        function delAll(){
            console.log('**********delAll**********');
            numArr = [];
            result.innerText = "";
        }

        function del(){
            numArr.pop();
            result.innerText = "=";
            numArr.forEach((item)=>{
                result.innerText += item;
            });
        }

        function operate(op){
            numArr.push(op.innerText);
            result.innerText = "=";
            numArr.forEach((item)=>{
                result.innerText += item;
            });
        }

        function getNumber(num){
            numArr.push(num.innerText);
            result.innerText = "=";
            numArr.forEach((item)=>{
                result.innerText += item;
            });
            console.log(numArr);
        }

        function equal(eq){
            let equation = "";
            numArr.forEach((item)=>{
                equation += item;
            });
            result.innerText = "=" + eval(equation);
            console.log(equation);
            console.log(result.innerText);
        }
    </script>
</body>
</html>

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的计算器程序的HTMLCSSJS代码: HTML代码: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Calculator</title> <link rel="stylesheet" href="style.css"> </head> <body> <div class="calculator"> <div class="display"></div> <button class="button" id="clear">AC</button> <button class="button" id="sign">+/-</button> <button class="button" id="percent">%</button> <button class="button operator" id="divide">÷</button> <button class="button" id="7">7</button> <button class="button" id="8">8</button> <button class="button" id="9">9</button> <button class="button operator" id="multiply">×</button> <button class="button" id="4">4</button> <button class="button" id="5">5</button> <button class="button" id="6">6</button> <button class="button operator" id="subtract">-</button> <button class="button" id="1">1</button> <button class="button" id="2">2</button> <button class="button" id="3">3</button> <button class="button operator" id="add">+</button> <button class="button zero" id="0">0</button> <button class="button" id="decimal">.</button> <button class="button operator" id="equals">=</button> </div> <script src="script.js"></script> </body> </html> ``` CSS代码: ```css body { font-family: Arial, sans-serif; margin: 0; padding: 0; } .calculator { width: 300px; margin: 50px auto; background-color: #eee; border-radius: 10px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); padding: 20px; display: grid; grid-template-columns: repeat(4, 1fr); grid-gap: 10px; } .display { grid-column: 1 / -1; background-color: #fff; border-radius: 5px; padding: 10px; font-size: 24px; text-align: right; } .button { background-color: #ccc; border: none; border-radius: 5px; padding: 10px; font-size: 18px; cursor: pointer; transition: background-color 0.2s ease; } .button:hover { background-color: #bbb; } .operator { background-color: #ff9500; color: #fff; } .zero { grid-column: 1 / span 2; } #equals { background-color: #ff9500; color: #fff; grid-row: 5 / span 2; } #clear { background-color: #d9534f; color: #fff; } #sign { background-color: #f0ad4e; color: #fff; } #percent { background-color: #5bc0de; color: #fff; } ``` JS代码: ```js let display = document.querySelector('.display'); let clear = document.querySelector('#clear'); let sign = document.querySelector('#sign'); let percent = document.querySelector('#percent'); let divide = document.querySelector('#divide'); let multiply = document.querySelector('#multiply'); let subtract = document.querySelector('#subtract'); let add = document.querySelector('#add'); let equals = document.querySelector('#equals'); let decimal = document.querySelector('#decimal'); let buttons = document.querySelectorAll('.button:not(#clear):not(#sign):not(#percent):not(#divide):not(#multiply):not(#subtract):not(#add):not(#equals):not(#decimal)'); let input = ''; let operator = ''; let result = ''; buttons.forEach(button => { button.addEventListener('click', () => { input += button.textContent; display.textContent = input; }); }); clear.addEventListener('click', () => { input = ''; operator = ''; result = ''; display.textContent = '0'; }); sign.addEventListener('click', () => { input = input * -1; display.textContent = input; }); percent.addEventListener('click', () => { input = input / 100; display.textContent = input; }); divide.addEventListener('click', () => { operator = '/'; result = input; input = ''; }); multiply.addEventListener('click', () => { operator = '*'; result = input; input = ''; }); subtract.addEventListener('click', () => { operator = '-'; result = input; input = ''; }); add.addEventListener('click', () => { operator = '+'; result = input; input = ''; }); equals.addEventListener('click', () => { switch(operator) { case '/': input = result / input; break; case '*': input = result * input; break; case '-': input = Number(result) - Number(input); break; case '+': input = Number(result) + Number(input); break; } display.textContent = input; }); decimal.addEventListener('click', () => { if (!input.includes('.')) { input += '.'; display.textContent = input; } }); ``` 上述代码实现一个简单的四则运算计算器,包含基本的功能按钮、数字按钮、小数点按钮、清空按钮、正负号按钮、百分号按钮等。用户可以通过点击按钮来输入数字和运算符,计算器可以实时显示用户输入的结果,并且支持实现四则运算。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值