javascript实现简单计算器效果【推荐】


Posted in Javascript onApril 19, 2016

最终效果如下图-2,有bug:就是整数后点击%号结果正确,如果小数后面点击%的话结果就错误!其他都正常,求指点:input的value是string类型的,在JS中改如何正确处理下图-1中的if部分??

图-1

javascript实现简单计算器效果【推荐】

图-2

javascript实现简单计算器效果【推荐】

HTML代码如下

<body>
<div id="calculator">
  <div class="LOGO">
    <span class="name">简单的计算器</span>
    <span class="verson">@walker</span>
  </div>
  <div id="shuRu">
    <!--screen输入栏-->
    <div class="screen">
      <input type="text" id="screenName" name="screenName" class="screen">
    </div>
  </div>
  <div id="keys">
    <!-- j -->
    <!--第一排-->
    <input type="button" id="7" onclick="jsq(this.id)" value="7" class="buttons">
    <input type="button" id="8" onclick="jsq(this.id)" value="8" class="buttons">
    <input type="button" id="9" onclick="jsq(this.id)" value="9" class="buttons">
    <input type="button" id="Back" onclick="tuiGe()" value="Back" class="buttons">
    <input type="button" id="C" onclick="clearNum()" value="C" class="buttons" style="margin-right:0px">
    <!--第二排-->
    <input type="button" id="4" onclick="jsq(this.id)" value="4" class="buttons">
    <input type="button" id="5" onclick="jsq(this.id)" value="5" class="buttons">
    <input type="button" id="6" onclick="jsq(this.id)" value="6" class="buttons">
    <input type="button" id="*" onclick="jsq(this.id)" value="X" class="buttons">
    <input type="button" id="/" onclick="jsq(this.id)" value="/" class="buttons" style="margin-right:0px">
    <!--第三排-->
    <input type="button" id="1" onclick="jsq(this.id)" value="1" class="buttons">
    <input type="button" id="2" onclick="jsq(this.id)" value="2" class="buttons">
    <input type="button" id="3" onclick="jsq(this.id)" value="3" class="buttons">
    <input type="button" id="+" onclick="jsq(this.id)" value="+" class="buttons">
    <input type="button" id="-" onclick="jsq(this.id)" value="-" class="buttons" style="margin-right:0px">
    <!--第四排-->
    <input type="button" id="0" onclick="jsq(this.id)" value="0" class="buttons">
    <input type="button" id="00" onclick="jsq(this.id)" value="00" class="buttons">
    <input type="button" id="." onclick="jsq(this.id)" value="." class="buttons">
    <input type="button" id="%" onclick="jsq(this.id)" value="%" class="buttons">
    <input type="button" id="eva" onclick="eva()" value="=" class="buttons" style="margin-right:0px">
  </div>
  <div class="footer">
    <span class="aside">欢迎使用JavaScript计算器</span>
      <span class="link">
        <a href="#" title="声明" target="_blank">反馈</a>
      </span>
  </div>
</div>
</body>

CSS代码如下:

<style>
    /*Basic reset*/
*{
  margin:0;
  padding:0;
  box-sizing: border-box;
  font: 14px Arial,sans-serif;
}
html{
  height:100%;
  background-color:lightslategrey;
}

#calculator{
  margin: 15px auto;
  width:330px;
  height:400px;
  border: 1px solid lightgray;
  background-color:darkgrey;
  padding:15px;
}

/*LOGO*/
.LOGO{
  height:20px;

}
.LOGO .name{
  float:left;
  line-height:30px;
}
.LOGO .verson{
  float:right;
  line-height:30px;
}
/*screen*/
#shuRu{
  margin-top:15px;
}
.screen{
  margin-top:5px;
  width:300px;
  height:40px;
  text-align: right;
  padding-right:10px;
  font-size:20px;
}
#keys{
  border:1px solid lightgray;
  height:223px;
  margin-top:25px;
  padding:8px;
}
#keys .last{
  margin-right:0px;
}
.footer{
  margin-top:20px;
  height:20px;
}
.footer .link{
  float:right;
}

#keys .buttons{
  float:left;
  width: 42px;
  height: 36px;
  text-align:center;
  background-color:lightgray;
  margin: 0 17px 20px 0;
}
  </style>

javascript代码如下:

<script> 
    var num = 0; // 定义第一个输入的数据 
    function jsq(num) { 
      //获取当前输入 
      if(num=="%"){ 
        document.getElementById('screenName').value=Math.round(document.getElementById('screenName').value)/100; 
      }else{ 
        document.getElementById('screenName').value += document.getElementById(num).value; 
      } 
    } 
    function eva() { 
      //计算输入结果 
      document.getElementById("screenName").value = eval(document.getElementById("screenName").value); 
    } 
    function clearNum() { 
      //清0 
      document.getElementById("screenName").value = null; 
      document.getElementById("screenName").focus(); 
    } 
    function tuiGe() { 
      //退格 
      var arr = document.getElementById("screenName"); 
      arr.value = arr.value.substring(0, arr.value.length - 1); 
    } 
  </script>

以上这篇javascript实现简单计算器效果【推荐】就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery ajax提交表单数据的两种实现方法
Apr 29 Javascript
javascript之querySelector和querySelectorAll使用说明
Oct 09 Javascript
JavaScript中常用的运算符小结
Jan 18 Javascript
javascript学习笔记(四)function函数部分
Sep 30 Javascript
jQuery 获取屏幕高度、宽度的简单实现案例
May 17 Javascript
JS模态窗口返回值兼容问题的完美解决方法
May 28 Javascript
设置jquery UI 控件的大小方法
Dec 12 Javascript
js new Date()实例测试
Oct 31 Javascript
ant-design-vue 快速避坑指南(推荐)
Jan 21 Javascript
node.js制作一个简单的登录拦截器
Feb 10 Javascript
使用Vant完成DatetimePicker 日期的选择器操作
Nov 12 Javascript
JavaScript选择器函数querySelector和querySelectorAll
Nov 27 Javascript
Jquery实现的简单轮播效果【附实例】
Apr 19 #Javascript
jQuery实现选项联动轮播效果【附实例】
Apr 19 #Javascript
浅析JavaScript中浏览器的兼容问题
Apr 19 #Javascript
javascript+HTML5 Canvas绘制转盘抽奖
May 16 #Javascript
深入浅析JavaScript中的constructor
Apr 19 #Javascript
js点击返回跳转到指定页面实现过程
Aug 20 #Javascript
javascript html5摇一摇功能的实现
Apr 19 #Javascript
You might like
php对gzip文件或者字符串解压实例参考
2008/07/25 PHP
php自动加载autoload机制示例分享
2014/02/20 PHP
PHP插件PHPMailer发送邮件功能
2017/02/28 PHP
Laravel5.7 数据库操作迁移的实现方法
2019/04/12 PHP
php7 错误处理机制修改实例分析
2020/05/25 PHP
jQuery 对象中的类数组操作
2009/04/27 Javascript
Javascript结合css实现网页换肤功能
2009/11/02 Javascript
Javascript 判断是否存在函数的方法
2013/01/03 Javascript
jQuery 获取和设置select下拉框的值实现代码
2013/11/08 Javascript
jQuery获取动态生成的元素示例
2014/06/15 Javascript
node.js中的querystring.unescape方法使用说明
2014/12/10 Javascript
基于Bootstrap实现的下拉菜单手机端不能选择菜单项的原因附解决办法
2016/07/22 Javascript
JS判断form内所有表单是否为空的简单实例
2016/09/09 Javascript
nodejs中使用HTTP分块响应和定时器示例代码
2017/03/19 NodeJs
JS奇技之利用scroll来监听resize详解
2017/06/15 Javascript
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
2017/08/01 jQuery
boostrap模态框二次弹出清空原有内容的方法
2018/08/10 Javascript
解决Angular4项目部署到服务器上刷新404的问题
2018/08/31 Javascript
vue-cli项目使用mock数据的方法(借助express)
2019/04/15 Javascript
详解vue 命名视图
2019/08/14 Javascript
Python中的defaultdict与__missing__()使用介绍
2018/02/03 Python
对Pytorch中nn.ModuleList 和 nn.Sequential详解
2019/08/18 Python
softmax及python实现过程解析
2019/09/30 Python
django3.02模板中的超链接配置实例代码
2020/02/04 Python
python网络编程:socketserver的基本使用方法实例分析
2020/04/09 Python
Pytorch 高效使用GPU的操作
2020/06/27 Python
CSS3 实现时间轴动画
2020/11/25 HTML / CSS
设置器与访问器的定义以及各自特点
2016/01/08 面试题
java程序员面试交流
2012/11/29 面试题
中医药大学市场营销专业自荐信
2013/09/29 职场文书
党员自我批评与反省材料
2014/02/10 职场文书
文艺晚会主持词
2014/03/24 职场文书
2015年全国爱眼日活动小结
2015/02/27 职场文书
失恋33天观后感
2015/06/11 职场文书
学前教育见习总结
2015/06/23 职场文书
vue postcss-px2rem 自适应布局
2022/05/15 Vue.js