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 相关文章推荐
JS类库Bindows1.3中的内存释放方式分析
Mar 08 Javascript
extjs 的权限问题 要求控制的对象是 菜单,按钮,URL
Mar 09 Javascript
javascript计算星座属相(十二生肖属相)示例代码
Jan 09 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
May 08 Javascript
jQuery随机密码生成的方法
Mar 09 Javascript
详解JavaScript权威指南之对象
Sep 27 Javascript
js判断价格,必须为数字且不能为负数的实现方法
Oct 07 Javascript
js+css3制作时钟特效
Oct 16 Javascript
利用JavaScript在网页实现八数码启发式A*算法动画效果
Apr 16 Javascript
微信小程序实现皮肤功能(夜间模式)
Jun 18 Javascript
Vue 项目分环境打包的方法示例
Aug 03 Javascript
Layui之table中的radio在切换分页时无法记住选中状态的解决方法
Sep 02 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
有关JSON以及JSON在PHP中的应用
2010/04/09 PHP
对于PHP 5.4 你必须要知道的
2013/08/07 PHP
php截取中文字符串不乱码的方法
2013/12/25 PHP
PHP程序漏洞产生的原因分析与防范方法说明
2014/03/06 PHP
php curl优化下载微信头像的方法总结
2018/09/07 PHP
js href的用法
2010/05/13 Javascript
javascript轻量级模板引擎juicer使用指南
2014/06/22 Javascript
jquery+json实现分页效果
2016/03/07 Javascript
javascript实现PC网页里的拖拽效果
2016/03/14 Javascript
使用jQuery中的wrap()函数操作HTML元素的教程
2016/05/24 Javascript
JavaScript循环_动力节点Java学院整理
2017/06/28 Javascript
Vue父子组建的简单通信之控制开关Switch的实现
2018/06/04 Javascript
vue2中,根据list的id进入对应的详情页并修改title方法
2018/08/24 Javascript
Bootstrap-table自定义可编辑每页显示记录数
2018/09/07 Javascript
vue实现div拖拽互换位置
2020/07/29 Javascript
ckeditor一键排版功能实现方法分析
2020/02/06 Javascript
Python中使用中文的方法
2011/02/19 Python
Python中获取对象信息的方法
2015/04/27 Python
Python实现配置文件备份的方法
2015/07/30 Python
pycharm+django创建一个搜索网页实例代码
2018/01/24 Python
无法使用pip命令安装python第三方库的原因及解决方法
2018/06/12 Python
pytorch 数据集图片显示方法
2018/07/26 Python
浅谈python脚本设置运行参数的方法
2018/12/03 Python
Python中的Socket 与 ScoketServer 通信及遇到问题解决方法
2019/04/01 Python
Python中字符串与编码示例代码
2019/05/20 Python
原来我一直安装 Python 库的姿势都不对呀
2019/11/11 Python
深入浅析python的第三方库pandas
2020/02/13 Python
python图片剪裁代码(图片按四个点坐标剪裁)
2020/03/10 Python
Nike英国官网:Nike.com (UK)
2017/02/13 全球购物
应届毕业生应聘自荐信
2013/12/07 职场文书
2015元旦标语横幅
2014/12/09 职场文书
60条职场经典语录,总有一条能触动你的心
2019/08/21 职场文书
Django集成富文本编辑器summernote的实现步骤
2021/05/31 Python
python中如何对多变量连续赋值
2021/06/03 Python
Java界面编程实现界面跳转
2022/06/16 Java/Android