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 相关文章推荐
输入密码检测大写是否锁定js实现代码
Dec 03 Javascript
html a标签-超链接中confirm方法使用介绍
Jan 04 Javascript
Jquery树插件zTree用法入门教程
Feb 17 Javascript
JavaScript实现显示函数调用堆栈的方法
Apr 21 Javascript
Bootstrap学习笔记之css样式设计(2)
Jun 07 Javascript
手机Web APP如何实现分享多平台功能
Aug 19 Javascript
DOM 事件的深入浅出(二)
Dec 05 Javascript
深入理解Vue 单向数据流的原理
Nov 09 Javascript
Vue 实现手动刷新组件的方法
Feb 19 Javascript
node使用mysql获取数据库数据中文乱码问题的解决
Dec 02 Javascript
JS函数基本定义与用法示例
Jan 15 Javascript
Vue2.0 $set()的正确使用详解
Jul 28 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实现可以设置中奖概率的抽奖程序代码分享
2014/01/19 PHP
ThinkPHP Mobile使用方法简明教程
2014/06/18 PHP
ZF框架实现发送邮件的方法
2015/12/03 PHP
php基于curl实现随机ip地址抓取内容的方法
2016/10/11 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
PHP一个简单的无需刷新爬虫
2019/01/05 PHP
Javascript remove 自定义数组删除方法
2009/10/20 Javascript
js与C#进行时间戳转换
2014/11/14 Javascript
SuperSlide标签切换、焦点图多种组合插件
2015/03/14 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
2015/10/17 Javascript
jquery事件的ready()方法使用详解
2015/11/11 Javascript
javascript的 {} 语句块详解
2016/02/27 Javascript
JavaScript获取客户端IP的方法(新方法)
2016/03/11 Javascript
归纳下js面向对象的几种常见写法总结
2016/08/24 Javascript
jQuery简单倒计时效果完整示例
2016/09/20 Javascript
JS实现禁止鼠标右键的功能
2016/10/15 Javascript
trackingjs+websocket+百度人脸识别API实现人脸签到
2018/11/26 Javascript
[01:26]神话结束了,却也刚刚开始——DOTA2新英雄玛尔斯驾临战场
2019/03/10 DOTA
python批量添加zabbix Screens的两个脚本分享
2017/01/16 Python
python利用urllib和urllib2访问http的GET/POST详解
2017/09/27 Python
Python读取txt文件数据的方法(用于接口自动化参数化数据)
2018/06/27 Python
python实现将文件夹内的每张图片批量分割成多张
2019/07/22 Python
关于ResNeXt网络的pytorch实现
2020/01/14 Python
PyQt5中QTableWidget如何弹出菜单的示例代码
2020/02/23 Python
django 前端页面如何实现显示前N条数据
2020/03/16 Python
Python Flask上下文管理机制实例解析
2020/03/16 Python
Python应用实现双指数函数及拟合代码实例
2020/06/19 Python
python与c语言的语法有哪些不一样的
2020/09/13 Python
python 基于opencv实现高斯平滑
2020/12/18 Python
英国最受欢迎的手表网站:Watch Shop
2016/10/21 全球购物
雅虎笔试题(字符串操作)
2015/03/24 面试题
银行求职自荐信
2014/06/30 职场文书
起诉状范本
2015/05/20 职场文书
同意离婚答辩状
2015/05/22 职场文书
ConstraintValidator类如何实现自定义注解校验前端传参
2021/06/18 Java/Android
Python实战实现爬取天气数据并完成可视化分析详解
2022/06/16 Python