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滚动条多种样式,推荐
Feb 05 Javascript
jQuery 源码分析笔记(4) Ready函数
Jun 02 Javascript
JS实现div内部的文字或图片自动循环滚动代码
Apr 19 Javascript
jQuery实现鼠标划过展示大图的方法
Mar 09 Javascript
js简单工厂模式用法实例
Jun 30 Javascript
jQuery基于ajax实现星星评论代码
Aug 07 Javascript
微信小程序表单验证错误提示效果
May 19 Javascript
React如何利用相对于根目录进行引用组件详解
Oct 09 Javascript
AngularJS 将再发布一个重要版本 然后进入长期支持阶段
Jan 31 Javascript
浅谈关于vue中scss公用的解决方案
Dec 02 Javascript
webpack+express实现文件精确缓存的示例代码
Jun 11 Javascript
微信小程序淘宝首页双排图片布局排版代码(推荐)
Oct 29 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代码优化及php相关问题总结
2006/10/09 PHP
mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
2007/03/15 PHP
PHP下判断网址是否有效的代码
2011/10/08 PHP
PHP 第二节 数据类型之数值型
2012/04/28 PHP
PHP-CGI远程代码执行漏洞分析与防范
2017/05/07 PHP
thinkPHP3.2.2框架行为扩展及demo示例
2018/06/19 PHP
PHP调用全国天气预报数据接口查询天气示例
2019/02/20 PHP
HR vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
javascript中的location用法简单介绍
2007/03/07 Javascript
csdn 博客的css样式 v3
2009/02/24 Javascript
jquery 图片截取工具jquery.imagecropper.js
2010/04/09 Javascript
jquery中获取id值方法小结
2013/09/22 Javascript
jQuery获得内容和属性示例代码
2014/01/16 Javascript
jQuery编写网页版2048小游戏
2017/01/06 Javascript
利用js查找数组中指定元素并返回该元素的所有索引示例
2017/03/29 Javascript
详解VUE 数组更新
2017/12/16 Javascript
jquery实现二级导航下拉菜单效果实例
2019/05/14 jQuery
Javascript组合继承方法代码实例解析
2020/04/02 Javascript
vue打开新窗口并实现传参的图文实例
2021/03/04 Vue.js
[00:59]DOTA2荣耀之路1:Doom is back!weapon X!
2018/05/22 DOTA
Python实现PS滤镜功能之波浪特效示例
2018/01/26 Python
pandas中的DataFrame按指定顺序输出所有列的方法
2018/04/10 Python
python中单下划线_的常见用法总结
2018/07/10 Python
pandas DataFrame 警告(SettingWithCopyWarning)的解决
2019/07/23 Python
Django1.11配合uni-app发起微信支付的实现
2019/10/12 Python
Python3.9又更新了:dict内置新功能
2020/02/28 Python
python查找特定名称文件并按序号、文件名分行打印输出的方法
2020/04/24 Python
abstract是什么意思
2012/02/12 面试题
文秘应聘自荐书范文
2014/02/18 职场文书
幼儿园六一活动总结
2014/08/27 职场文书
单位租车协议书
2015/01/29 职场文书
护士医德考评自我评价
2015/03/03 职场文书
2015年党建工作目标责任书
2015/05/08 职场文书
TensorFlow中tf.batch_matmul()的用法
2021/06/02 Python
为什么MySQL不建议使用SELECT *
2022/04/03 MySQL
Java服务调用RestTemplate与HttpClient的使用详解
2022/06/21 Java/Android