js计算器实现

1. 演示效果

QQ录屏20240325092539 -original-original

2. 分析思路

给每个按钮添加点击事件,使用eval()进行计算。

3. 代码实现

<!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>
      .container {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr 1fr;
        grid-template-rows: 1fr 1fr 1fr 1fr 1fr;
        width: 600px;
        height: 700px;
        padding: 30px;
        background: #495678;
        margin: 50px auto;
        border-radius: 30px;

        gap: 33px;
      }
      button {
        background: #72778b;
        border: none;
        color: white;
        font-size: 25px;
        text-align: center;
        border-radius: 50px;
      }
      button:hover {
        background: #575b6d;
      }
      .display:hover {
        background: #98d1dc;
      }
      .display {
        grid-column: 2/5;
        background: #98d1dc;
      }
      .clear,
      .equal {
        background: #e3844c;
      }
      .clear:hover,
      .equal:hover {
        background: #aa6339;
      }
      .operator {
        background: #fff;
        color: black;
      }
      .operator:hover {
        background: #ffffffb7;
      }
    </style>
  </head>
  <body>
    <div class="container">
      <button class="clear">c</button>
      <button class="display"></button>
      <button class="number">7</button>
      <button class="number">8</button>
      <button class="number">9</button>
      <button class="operator">+</button>
      <button class="number">4</button>
      <button class="number">5</button>
      <button class="number">6</button>
      <button class="operator">*</button>
      <button class="number">1</button>
      <button class="number">2</button>
      <button class="number">3</button>
      <button class="operator">-</button>
      <button class="number">0</button>
      <button class="operator">.</button>
      <button class="operator">/</button>
      <button class="equal">=</button>
    </div>

    <script>
      // 获取元素
      const buttons = document.querySelectorAll("button");
      const display = document.querySelector(".display");

      // 给显示在display的按钮添加点击事件 除了第一个和第二个
      for (let i = 2; i < buttons.length - 1; i++) {
        buttons[i].addEventListener("click", function () {
          display.innerHTML += this.innerHTML;
        });
      }

      // 清空按钮
      buttons[0].addEventListener("click", function () {
        display.innerHTML = "";
      });

      // 计算按钮
      buttons[buttons.length - 1].addEventListener("click", function () {
        display.innerHTML = eval(display.innerHTML);
      });
    </script>
  </body>
</html>

相关推荐

  1. js实现走马灯效果

    2024-04-06 21:32:05       59 阅读
  2. js实现一个lazyman

    2024-04-06 21:32:05       64 阅读
  3. js实现LFU算法

    2024-04-06 21:32:05       58 阅读
  4. js实现图片放大镜

    2024-04-06 21:32:05       41 阅读
  5. js手动实现unshift

    2024-04-06 21:32:05       36 阅读
  6. js实现定时器

    2024-04-06 21:32:05       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-06 21:32:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-06 21:32:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-06 21:32:05       87 阅读
  4. Python语言-面向对象

    2024-04-06 21:32:05       96 阅读

热门阅读

  1. DDPM扩散模型数学推导

    2024-04-06 21:32:05       39 阅读
  2. 慢SQL问题排查

    2024-04-06 21:32:05       32 阅读
  3. 反转链表(C语言)

    2024-04-06 21:32:05       43 阅读
  4. 蓝桥杯算法题:K倍区间

    2024-04-06 21:32:05       43 阅读
  5. 第六章:CSS最佳实践与优化

    2024-04-06 21:32:05       41 阅读
  6. 第十四届蓝桥杯省赛大学B组(C/C++)整数删除

    2024-04-06 21:32:05       48 阅读
  7. 抖音运营技巧2

    2024-04-06 21:32:05       41 阅读
  8. MyBatis plus 详解

    2024-04-06 21:32:05       144 阅读