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 日期处理之时区问题
Oct 08 Javascript
jquery 单击li防止重复加载的实现代码
Dec 24 Javascript
jquery创建表格(自动增加表格)代码分享
Dec 25 Javascript
学习JavaScript设计模式(继承)
Nov 26 Javascript
基于JavaScript实现添加到购物车效果附源码下载
Aug 22 Javascript
如何利用JSHint减少JavaScript的错误
Aug 23 Javascript
聊一聊Vue.js过渡效果
Sep 07 Javascript
Bootstrap基本插件学习笔记之折叠(22)
Dec 08 Javascript
基于JavaScript实现活动倒计时效果
Apr 20 Javascript
SelectPage v2.4 发布新增纯下拉列表和关闭分页功能
Sep 07 Javascript
深入浅析JavaScript中的RegExp对象
Sep 18 Javascript
解决vue项目使用font-awesome,build后路径的问题
Sep 01 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(1)
2006/10/09 PHP
在smarty模板中使用PHP函数的方法
2011/04/23 PHP
php长字符串定义方法
2012/07/12 PHP
php实现扫描二维码根据浏览器类型访问不同下载地址
2014/10/15 PHP
PHP统计目录大小的自定义函数分享
2014/11/18 PHP
PHP使用Mysqli类库实现完美分页效果的方法
2016/04/07 PHP
Yii2 ActiveRecord多表关联及多表关联搜索的实现
2016/06/30 PHP
让FireFox支持innerText的实现代码
2009/12/01 Javascript
js判断输入是否为正整数、浮点数等数字的函数代码
2010/11/17 Javascript
JS异常处理的一个想法(sofish)
2013/03/14 Javascript
JS实现跟随鼠标闪烁转动色块的方法
2015/02/26 Javascript
JavaScript阻止浏览器返回按钮的方法
2015/03/18 Javascript
AngularJS基础 ng-paste 指令简单示例
2016/08/02 Javascript
js从外部获取图片的实现方法
2016/08/05 Javascript
理解AngularJs篇:30分钟快速掌握AngularJs
2016/12/23 Javascript
jQuery中ztree 点击文本框弹出下拉框的实例代码
2017/02/05 Javascript
js轮播图的插件化封装详解
2017/07/17 Javascript
微信小程序自定义弹窗wcPop插件
2018/11/19 Javascript
微信小程序在地图选择地址并返回经纬度简单示例
2018/12/03 Javascript
jquery实现直播弹幕效果
2019/11/28 jQuery
微信小程序实现底部弹出模态框
2020/11/18 Javascript
vue如何使用rem适配
2021/02/06 Vue.js
win7 下搭建sublime的python开发环境的配置方法
2014/06/18 Python
Python松散正则表达式用法分析
2016/04/29 Python
利用Python为iOS10生成图标和截屏
2016/09/24 Python
Python编写合并字典并实现敏感目录的小脚本
2019/02/26 Python
Links of London官方网站:英国标志性的珠宝品牌
2017/04/09 全球购物
Carter’s官方旗舰店:美国受欢迎的婴童服装品牌
2018/01/21 全球购物
会展策划与管理专业大学生职业生涯规划
2014/02/07 职场文书
预备党员表决心书
2014/03/11 职场文书
计划生育证明书写要求
2014/09/17 职场文书
2015年妇产科工作总结
2015/05/18 职场文书
民事起诉书范本
2015/05/19 职场文书
《画家和牧童》教学反思
2016/02/17 职场文书
MySQL的索引你了解吗
2022/03/13 MySQL
Python线程池与GIL全局锁实现抽奖小案例
2022/04/13 Python