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 相关文章推荐
javascript新手语法小结
Jun 15 Javascript
在模板页面的js使用办法
Apr 01 Javascript
关于用Jquery的height()、width()计算动态插入的IMG标签的宽高的问题
Dec 08 Javascript
JavaScript数组深拷贝和浅拷贝的两种方法
Apr 16 Javascript
Boostrap入门准备之border box
May 09 Javascript
node.js连接MongoDB数据库的2种方法教程
May 17 Javascript
ReactNative 之FlatList使用及踩坑封装总结
Nov 29 Javascript
Vue入门之数据绑定(小结)
Jan 08 Javascript
vue-cli3使用 DllPlugin 实现预编译提升构建速度
Apr 24 Javascript
Javascript和jquery在selenium的使用过程
Oct 31 jQuery
详解vue-cli项目在IE浏览器打开报错解决方法
Dec 10 Vue.js
Vue看了就会的8个小技巧
Jan 21 Vue.js
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遍历目录输出目录及其下的所有文件示例
2014/01/27 PHP
php输入数据统一类实例
2015/02/23 PHP
php自定义函数转换html标签示例
2016/09/29 PHP
Zend Framework常用校验器详解
2016/12/09 PHP
YII框架页面缓存操作示例
2019/04/29 PHP
JS+XML 省份和城市之间的联动实现代码
2009/10/14 Javascript
jQuery.query.js 取参数的两点问题分析
2012/08/06 Javascript
Javascript弹出窗口的各种方法总结
2013/11/11 Javascript
含有CKEditor的表单如何提交
2014/01/09 Javascript
jQuery提示效果代码分享
2014/11/20 Javascript
jQuery用户头像裁剪插件cropbox.js使用详解
2017/06/07 jQuery
javascript实现最长公共子序列实例代码
2018/02/05 Javascript
详解创建自定义的Angular Schematics
2018/06/06 Javascript
node.js的Express服务器基本使用教程
2019/01/09 Javascript
JavaScript 防盗链的原理以及破解方法
2020/12/29 Javascript
[01:05:52]DOTA2-DPC中国联赛 正赛 Ehome vs Aster BO3 第一场 2月2日
2021/03/11 DOTA
在Python中使用next()方法操作文件的教程
2015/05/24 Python
在Django框架中伪造捕捉到的URLconf值的方法
2015/07/18 Python
Python中subprocess的简单使用示例
2015/07/28 Python
用pickle存储Python的原生对象方法
2017/04/28 Python
python 实现交换两个列表元素的位置示例
2019/06/26 Python
详解Python并发编程之创建多线程的几种方法
2019/08/23 Python
详解Python中的分支和循环结构
2020/02/11 Python
keras实现theano和tensorflow训练的模型相互转换
2020/06/19 Python
利用Python实现Json序列化库的方法步骤
2020/09/09 Python
使用AJAX和Django获取数据的方法实例
2020/10/25 Python
使用HTML5进行SVG矢量图形绘制的入门教程
2016/02/19 HTML / CSS
施华洛世奇水晶荷兰官方网站:SWAROVSKI荷兰
2017/05/12 全球购物
美国环保婴儿用品公司:The Honest Company
2017/11/23 全球购物
SmartBuyGlasses比利时:购买品牌太阳镜和眼镜
2019/08/09 全球购物
转预备党员政审材料
2014/02/06 职场文书
利用python做数据拟合详情
2021/11/17 Python
Python 居然可以在 Excel 中画画你知道吗
2022/02/15 Python
redis数据结构之压缩列表
2022/03/21 Redis
使用vue判断当前环境是安卓还是IOS
2022/04/12 Vue.js
Java 多线程协作作业之信号同步
2022/05/11 Java/Android