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 弹出登录窗口实现代码
Dec 24 Javascript
JQuery魔力之$(&quot;tagName&quot;)与selector
Mar 05 Javascript
jquery实现树形二级菜单实例代码
Nov 20 Javascript
jQuery 事件的命名空间简单了解
Nov 22 Javascript
js实现网页自动刷新可制作节日倒计时效果
May 27 Javascript
简单学习JavaScript中的for语句循环结构
Nov 10 Javascript
jQuery实现页码跳转式动态数据分页
Dec 31 jQuery
在vue项目中使用md5加密的方法
Sep 14 Javascript
js时间戳转yyyy-MM-dd HH-mm-ss工具类详解
Apr 30 Javascript
前端插件之Bootstrap Dual Listbox使用教程
Jul 23 Javascript
Vue使用v-viewer实现图片预览
Oct 21 Javascript
微信小程序向Java后台传输参数的方法实现
Dec 10 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 if 想到的些问题
2008/03/22 PHP
解析PHP中一些可能会被忽略的问题
2013/06/21 PHP
Symfony2中被遗弃的getRequest()方法分析
2016/03/17 PHP
Codeigniter里的无刷新上传的实现代码
2019/04/14 PHP
ThinkPHP框架结合Ajax实现用户名校验功能示例
2019/07/03 PHP
一些易混淆且不常用的属性,希望有用
2007/01/29 Javascript
jQuery与ExtJS之选择实例分析
2010/08/19 Javascript
Jjcarousellite 实现图片列表滚动的简单实例
2013/11/29 Javascript
javascript表格隔行变色加鼠标移入移出及点击效果的方法
2015/04/10 Javascript
jQuery CSS3相结合实现时钟插件
2016/01/08 Javascript
AngularJS入门教程之AngularJS表达式
2016/04/18 Javascript
JavaScript模块化之使用requireJS按需加载
2017/04/12 Javascript
jQuery扩展_动力节点Java学院整理
2017/07/05 jQuery
基于JavaScript实现评论框展开和隐藏功能
2017/08/25 Javascript
vue cli升级webapck4总结
2018/04/04 Javascript
动态加载JavaScript文件的3种方式
2018/05/05 Javascript
vue如何将v-for中的表格导出来
2018/05/07 Javascript
详解vue的diff算法原理
2018/05/20 Javascript
vue-cli3 DllPlugin 提取公用库的方法
2019/04/24 Javascript
vue.js中ref及$refs的使用方法解析
2019/10/08 Javascript
怎么使用pipenv管理你的python项目
2018/03/12 Python
通过pykafka接收Kafka消息队列的方法
2018/12/27 Python
详解Python循环作用域与闭包
2019/03/21 Python
对python中url参数编码与解码的实例详解
2019/07/25 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
2019/08/20 Python
创建Shapefile文件并写入数据的例子
2019/11/26 Python
家庭睡衣和家庭用品:Little Blue House
2018/03/18 全球购物
世界上最大的艺术和工艺用品商店:MisterArt.com
2018/07/13 全球购物
即时搜索数百万张门票:SeatsForEveryone.com
2018/08/26 全球购物
逻辑链路控制协议
2016/10/01 面试题
心理健康课教学反思
2014/02/13 职场文书
《听鱼说话》教学反思
2014/02/15 职场文书
求职信内容怎么写
2014/05/26 职场文书
常务副县长“四风”个人对照检查材料思想汇报
2014/10/02 职场文书
2015欢度元旦标语口号
2014/12/09 职场文书
2015年副班长工作总结
2015/05/15 职场文书