js实现简单的计算器功能


Posted in Javascript onJanuary 16, 2017

话不多说,请看示例代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>简单的计算器</title>
  <style>
    * {
      margin: 0 auto;
      padding: 0px;
    }
    html, body {
      width: 100%;
      height: 100%;
    }
    a {
      text-decoration: none;
    }
    .wrap {
      width: 30%;
      min-width: 250px;
      margin: 0 auto;
      border: 1px solid #b1b1b1;
    }
    .wrap .screen {
      width: 100%;
      height: 150px;
      background-color: #8d8d8d;
    }
    .wrap .screen .string {
      height: 100%;
      user-select: none;
      font-size: 30px;
      word-break: break-all;
    }
    .wrap .button-group {
      width: 100%;
      margin-top: 5px;
    }
    .wrap .button-group td {
      width: 25%;
    }
    .wrap .button-group td a {
      display: inline-block;
      height: 80px;
      text-align: center;
      background-color: #d5d5d5;
      color: #000;
      line-height: 80px;
      font-size: 25px;
      width: 100%;
      user-select: none;
    }
    .wrap .button-group td a:hover {
      background-color: #9d9d9d;
      color: #002a80;
    }
    .wrap .button-group td a.active {
      background-color: red;
    }
  </style>
</head>
<body>
<div class="wrap">
  <div class="screen">
    <p class="string"></p>
  </div>
  <div class="button-group">
    <table cellspacing="5" cellpadding="10" border="0" width="100%">
      <tr>
        <td><a href="javascript:void(0);">7</a></td>
        <td><a href="javascript:void(0);">8</a></td>
        <td><a href="javascript:void(0);">9</a></td>
        <td><a href="javascript:void(0);">*</a></td>
      </tr>
      <tr>
        <td><a href="javascript:void(0);">4</a></td>
        <td><a href="javascript:void(0);">5</a></td>
        <td><a href="javascript:void(0);">6</a></td>
        <td><a href="javascript:void(0);">/</a></td>
      </tr>
      <tr>
        <td><a href="javascript:void(0);">1</a></td>
        <td><a href="javascript:void(0);">2</a></td>
        <td><a href="javascript:void(0);">3</a></td>
        <td><a href="javascript:void(0);">+</a></td>
      </tr>
      <tr>
        <td><a href="javascript:void(0);">DEL</a></td>
        <td><a href="javascript:void(0);">0</a></td>
        <td><a href="javascript:void(0);" class="active">=</a></td>
        <td><a href="javascript:void(0);">-</a></td>
      </tr>
    </table>
  </div>
</div>
<script>
  var numString = document.getElementsByClassName("string")[0];
  var buttonGroup = document.getElementsByTagName("a");
  var screen = document.getElementsByClassName("string")[0];
  var num1 = 0;
  var num2 = 0;
  var count = 0;
  var f;
  var flag = true;
  /*控制输入的是数字*/
  var flag2 = true;
  /*控制是否连续点击符号*/
  screen.onclick = function () {
    numString.innerHTML = "";
  };
  for (var i = 0; i < buttonGroup.length; i++) {
    buttonGroup[i].onclick = function () {
      switch (this.innerHTML) {
        case "0":
        case "1":
        case "2":
        case "3":
        case "4":
        case "5":
        case "6":
        case "7":
        case "8":
        case "9":
          if (!flag) {
            numString.innerHTML = "";
            flag2 = true;
          }
          flag = true;
            numString.innerHTML += this.innerHTML;
          break;
        case "DEL":
          numString.innerHTML = numString.innerHTML.substr(0, numString.innerHTML.length - 1);
          break;
        case "+":
        case "-":
        case "*":
        case "/":
          f = this.innerHTML;
          count++;
          if (flag2) {
            flag = false;
            /*控制输入的是符号*/
            if (count == 1) {
              num1 = numString.innerHTML;
            } else {
              flag2 = false;
              num2 = numString.innerHTML;
              numString.innerHTML = eval(num1 + f + num2);
              num1 = numString.innerHTML;
            }
          }
          break;
        case "=":
          num2 = numString.innerHTML;
          numString.innerHTML = eval(num1 + f + num2);
          count = 0;
          flag = !flag;
          break;
      }
    }
  }
</script>
</body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
通过event对象的fromElement属性解决热区设置主实体的一个bug
Dec 22 Javascript
js页面跳转的问题(跳转到父页面、最外层页面、本页面)
Aug 14 Javascript
JavaScript通过join函数连接数组里所有元素的方法
Mar 20 Javascript
jQuery使用hide方法隐藏页面上指定元素的方法
Mar 30 Javascript
js实现的四级左侧网站分类菜单实例
May 06 Javascript
轮播的简单实现方法
Jul 28 Javascript
Knockout结合Bootstrap创建动态UI实现产品列表管理
Sep 14 Javascript
基于jQuery实现滚动切换效果
Dec 02 Javascript
ES6生成器用法实例分析
Apr 10 Javascript
vue+web端仿微信网页版聊天室功能
Apr 30 Javascript
利用layer实现表单完美验证的方法
Sep 26 Javascript
node.JS的crypto加密模块使用方法详解(MD5,AES,Hmac,Diffie-Hellman加密)
Feb 06 Javascript
Javascript中document.referrer隐藏来源的方法
Jan 16 #Javascript
基于jQuery实现的打字机效果
Jan 16 #Javascript
JS实现的验证身份证及获取地区功能示例
Jan 16 #Javascript
JavaScript严格模式详解
Jan 16 #Javascript
关于iframe跨域POST提交的方法示例
Jan 15 #Javascript
JavaScript中利用for循环遍历数组
Jan 15 #Javascript
基于Bootstrap的Java开发问题汇总(Spring MVC)
Jan 15 #Javascript
You might like
php smarty 二级分类代码和模版循环例子
2011/06/01 PHP
PHP获取时间排除周六、周日的两个方法
2014/06/30 PHP
thinkphp特殊标签用法概述
2014/11/24 PHP
PHP中Session和Cookie是如何操作的
2015/10/10 PHP
thinkphp3.2实现跨控制器调用其他模块的方法
2017/03/14 PHP
实例讲解PHP页面静态化
2018/02/05 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
Web开发之JavaScript
2012/03/29 Javascript
IE下JS读取xml文件示例代码
2013/08/05 Javascript
jQuery中find()方法用法实例
2015/01/07 Javascript
JS+CSS实现类似QQ好友及黑名单效果的树型菜单
2015/09/22 Javascript
判断输入的字符串是否是日期格式的简单方法
2016/07/11 Javascript
如何使用JS在HTML中自定义字符串格式化
2017/07/20 Javascript
JavaScript实现百度搜索框效果
2020/03/26 Javascript
详解微信小程序scroll-view横向滚动的实践踩坑及隐藏其滚动条的实现
2019/03/14 Javascript
Python下singleton模式的实现方法
2014/07/16 Python
为python设置socket代理的方法
2015/01/14 Python
使用基于Python的Tornado框架的HTTP客户端的教程
2015/04/24 Python
12步教你理解Python装饰器
2016/02/25 Python
python xml解析实例详解
2016/11/14 Python
Python做简单的字符串匹配详解
2017/03/21 Python
Python multiprocess pool模块报错pickling error问题解决方法分析
2019/03/20 Python
django框架实现一次性上传多个文件功能示例【批量上传】
2019/06/19 Python
python 根据网易云歌曲的ID 直接下载歌曲的实例
2019/08/24 Python
Pytorch 保存模型生成图片方式
2020/01/10 Python
中科软笔试题和面试题
2014/10/07 面试题
优秀工会工作者事迹材料
2014/06/02 职场文书
社区清明节活动总结
2014/07/04 职场文书
通报表扬范文
2015/01/17 职场文书
2015清明节祭奠英烈寄语大全
2015/03/04 职场文书
消费者理赔投诉书
2015/07/02 职场文书
浅谈golang 中time.After释放的问题
2021/05/05 Golang
WebWorker 封装 JavaScript 沙箱详情
2021/11/02 Javascript
python工具dtreeviz决策树可视化和模型可解释性
2022/03/03 Python
开发微信小程序之WXSS样式教程
2022/04/18 HTML / CSS
MySQL慢查询中的commit慢和binlog中慢事务的区别
2022/06/16 MySQL