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 相关文章推荐
jQuery 第二课 操作包装集元素代码
Mar 14 Javascript
jquery 设置style:display的方法
Jan 29 Javascript
jquery ztree实现模糊搜索功能
Feb 25 Javascript
JavaScript数组实现数据结构中的队列与堆栈
May 26 Javascript
vue 实现 tomato timer(蕃茄钟)实例讲解
Jul 24 Javascript
js封装成插件_Canvas统计图插件编写实例
Sep 12 Javascript
JS获取日期的方法实例【昨天,今天,明天,前n天,后n天的日期】
Sep 28 Javascript
vue实现消息的无缝滚动效果的示例代码
Dec 05 Javascript
5 种JavaScript编码规范
Jan 30 Javascript
引入外部js脚本加载慢与页面白屏问题的解决
Dec 10 Javascript
vue-cli中安装方法(图文详细步骤)
Dec 12 Javascript
解决三元运算符 报错“SyntaxError: can''t assign to conditional expression”
Feb 12 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实现SAE上使用storage上传与下载文件的方法
2015/06/29 PHP
CI操作cookie的方法分析(基于helper类库)
2016/03/28 PHP
如何用PHP做到页面注册审核
2017/03/02 PHP
Javascript学习笔记5 类和对象
2010/01/11 Javascript
js以对象为索引的关联数组
2010/07/04 Javascript
使用jquery为table动态添加行的实现代码
2011/03/30 Javascript
JavaScript高级程序设计(第3版)学习笔记6 初识js对象
2012/10/11 Javascript
jquery选择器使用详解
2014/04/08 Javascript
javascript 实现map集合
2015/04/03 Javascript
JS中实现函数return多个返回值的实例
2017/02/21 Javascript
JS运动特效之同时运动实现方法分析
2018/01/24 Javascript
在Vue组件上动态添加和删除属性方法
2018/02/23 Javascript
VUE2.0+ElementUI2.0表格el-table实现表头扩展el-tooltip
2018/11/30 Javascript
Vue.js 中制作自定义选择组件的代码附演示demo
2020/02/28 Javascript
Node.js API详解之 os模块用法实例分析
2020/05/06 Javascript
jQuery AJAX应用实例总结
2020/05/19 jQuery
VUE动态生成word的实现
2020/07/26 Javascript
vue+elementUI动态增加表单项并添加验证的代码详解
2020/12/17 Vue.js
对于Python异常处理慎用“except:pass”建议
2015/04/02 Python
简述Python中的面向对象编程的概念
2015/04/27 Python
python求最大连续子数组的和
2018/07/07 Python
Python使用pickle模块实现序列化功能示例
2018/07/13 Python
python数据批量写入ScrolledText的优化方法
2018/10/11 Python
python 哈希表实现简单python字典代码实例
2019/09/27 Python
PyCharm 2020 激活到 2100 年的教程
2020/03/25 Python
python如何保存文本文件
2020/06/07 Python
Pycharm2020.1安装无法启动问题即设置中文插件的方法
2020/08/07 Python
python 元组和列表的区别
2020/12/30 Python
定义css设备类型-Media Queries图表简介及使用方法
2013/01/21 HTML / CSS
GoDaddy英国:全球排名第一的域名注册商
2018/06/08 全球购物
开普敦通行证:Cape Town Pass
2019/07/18 全球购物
什么是Oracle的后台进程background processes?都有哪些后台进程?
2012/04/26 面试题
校园广播稿500字
2014/02/04 职场文书
领导班子个人对照检查剖析材料
2014/09/29 职场文书
作风建设剖析材料
2014/10/06 职场文书
心得体会该怎么写呢?
2019/06/27 职场文书