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 相关文章推荐
input、button的不同type值在ajax提交表单时导致的陷阱
Feb 24 Javascript
关于js类的定义
Jun 28 Javascript
javascript中RegExp保留小数点后几位数的方法分享
Aug 13 Javascript
seaJs的模块定义和模块加载浅析
Jun 06 Javascript
JavaScript检查某个function是否是原生代码的方法
Aug 20 Javascript
CSS javascript 结合实现悬浮固定菜单效果
Aug 23 Javascript
Bootstrap布局之栅格系统学习笔记
May 04 Javascript
js学习总结之dom2级事件基础知识详解
Jul 27 Javascript
使用canvas进行图像编辑的实例
Aug 29 Javascript
JavaScript中的连续赋值问题实例分析
Jul 12 Javascript
node读写Excel操作实例分析
Nov 06 Javascript
nestjs返回给前端数据格式的封装实现
Feb 22 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
为什么《星际争霸》是测试人工智能的理想战场
2019/12/03 星际争霸
apache mysql php 源码编译使用方法
2012/05/03 PHP
通过缓存数据库结果提高PHP性能的原理介绍
2012/09/05 PHP
关于PHP中协程和阻塞的一些理解与思考
2017/08/11 PHP
JS对象转换为Jquery对象示例
2014/01/26 Javascript
Node.js编写爬虫的基本思路及抓取百度图片的实例分享
2016/03/12 Javascript
jQuery过滤选择器经典应用
2016/08/18 Javascript
微信小程序 教程之条件渲染
2016/10/18 Javascript
JS仿京东移动端手指拨动切换轮播图效果
2020/04/10 Javascript
vue中当图片地址无效的时候,显示默认图片的方法
2018/09/18 Javascript
微信小程序日历弹窗选择器代码实例
2019/05/09 Javascript
JavaScript交换两个变量方法实例
2019/11/25 Javascript
Vue使用vue-draggable 插件在不同列表之间拖拽功能
2020/03/12 Javascript
vue-iview动态新增和删除的方法
2020/06/17 Javascript
jquery实现拖拽小方块效果
2020/12/10 jQuery
手动实现vue2.0的双向数据绑定原理详解
2021/02/06 Vue.js
详解Python中的join()函数的用法
2015/04/07 Python
python通过opencv实现批量剪切图片
2017/11/13 Python
解决python中使用PYQT时中文乱码问题
2019/06/17 Python
python pip源配置,pip配置文件存放位置的方法
2019/07/12 Python
使用Python将字符串转换为格式化的日期时间字符串
2019/09/01 Python
python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍
2020/02/25 Python
python 双循环遍历list 变量判断代码
2020/05/04 Python
基于Keras中Conv1D和Conv2D的区别说明
2020/06/19 Python
Keras - GPU ID 和显存占用设定步骤
2020/06/22 Python
html5中audio支持音频格式的解决方法
2018/08/24 HTML / CSS
Lands’ End英国官方网站:高质量男女服装
2017/10/07 全球购物
英国和国际包裹递送:ParcelCompare
2019/08/26 全球购物
精神文明单位申报材料
2014/05/02 职场文书
班风口号
2014/06/18 职场文书
师德承诺书
2015/01/20 职场文书
小学语文教师年度考核个人总结
2015/02/05 职场文书
员工试用期工作总结
2019/06/20 职场文书
创业计划书之寿司
2019/07/19 职场文书
Nginx实现高可用集群构建(Keepalived+Haproxy+Nginx)
2021/05/27 Servers
mysql数据插入覆盖和时间戳的问题及解决
2022/03/25 MySQL