JavaScript经典案例之简易计算器


Posted in Javascript onAugust 24, 2020

本文实例为大家分享了JavaScript实现简易计算器的具体代码,供大家参考,具体内容如下

效果图:

JavaScript经典案例之简易计算器

逻辑:

1、首先通过遍历,为所有元素添加事件; 2、各个按钮功能分别实现

<!DOCTYPE html>
<html lang="en">

<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <title>Document</title>
</head>
<style>
 .one {
 width: 50px;
 height: 50px;
 background: #f60;
 display: inline-block;
 line-height: 50px;
 color: #fff;
 margin: 5px 5px 5px 0;
 font-size: 23px;
 text-align: center;
 cursor: pointer;
 }

 .two {
 width: 112px;
 height: 50px;
 background: #f60;
 color: #fff;
 font-size: 23px;
 display: inline-block;
 margin-top: 5px;
 text-align: center;
 line-height: 50px;
 cursor: pointer;

 }

 .tools {
 background: blue;
 cursor: pointer;

 }

 .cal {
 height: 100px;
 position: relative;
 background: #999;
 width: 228px;
 color: #fff;
 font-size: 23px;
 cursor: pointer;


 }

 .cal_content {
 position: absolute;
 bottom: 10px;
 right: 10px;
 word-break: normal;
 cursor: pointer;

 }
</style>

<body>
 <div>
 <div class="cal">
  <span class="cal_content" id="cal_content">0</span>
 </div>
 <div>
  <span class="one tools calbtn">*</span>
  <span class="one tools calbtn">/</span>
  <span class="one tools" id="del">CE</span>
  <span class="one tools" id="resset">AC</span>
 </div>
 <div>
  <span class="one calbtn">7</span>
  <span class="one calbtn">8</span>
  <span class="one calbtn">9</span>
  <span class="one tools calbtn">+</span>
 </div>
 <div>
  <span class="one calbtn"> 4</span>
  <span class="one calbtn">5</span>
  <span class="one calbtn">6</span>
  <span class="one tools calbtn">-</span>
  <!-- <span clas>-</span> -->
 </div>
 <div>
  <span class="one calbtn">1</span>
  <span class="one calbtn">2</span>
  <span class="one calbtn">3</span>
  <span class="one tools calbtn">.</span>
 </div>
 <div>
  <span class="two calbtn">0</span>
  <span class="two tools " id="fin">=</span>
 </div>
 </div>
</body>
<script>
 // 获取标签
 var cal_content = document.getElementById('cal_content');
 var btn = document.getElementsByClassName('calbtn');
 var caltext = ''; //
 // 遍历,添加事件
 for (var i = 0; i < btn.length; i++) {
 btn[i].addEventListener('click', function () {
  // this指代 当前对象
  caltext += this.innerHTML;
  cal_content.innerHTML = caltext
 })
 }


 // 清空
 var resset = document.getElementById('resset');
 resset.addEventListener('click', function () {
 cal_content.innerHTML = '0';
 caltext = ''; //
 })

 // 删除键
 var del = document.getElementById('del');
 del.addEventListener('click', function () {
 caltext = caltext.substring(0, caltext.length - 1);
 cal_content.innerHTML = caltext
 if (cal_content.innerHTML.length == 0) {
  cal_content.innerHTML = '0';
 }
 })

 //等号键
 var fin = document.getElementById('fin');
 fin.addEventListener('click', function () {
 // console.log(caltext)
 cal_content.innerHTML = eval(caltext);
 caltext = eval(caltext);
 // console.log(caltext)
 })


 // 键盘事件
 document.onkeyup = function (event) {
 var event = event || window.event;
 console.log(event.key)
 
 // 判断F5和CTRl键
 if(event.keyCode==116 || event.keyCode == 17){
  return;
 }

 // 判断是否是 回车键
 if (event.keyCode == 13) {
  cal_content.innerHTML = eval(caltext);
  caltext = eval(caltext);
  return;
 }
 

 caltext += event.key
 cal_content.innerHTML = caltext;
 }
</script>

</html>

总计:

1、通过对象点击将元素的值链接在一起,最后通过**eval()函数**进行计算,将最终结果反馈到显示区域
2、设置一个全局表变量 *var caltext = ‘'; * 存放计算字符串
3、ondoucument.onkeyup = function(){ //代码 } 键盘事件

更多计算器功能实现,请点击专题: 计算器功能汇总 进行学习

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
In Javascript Class, how to call the prototype method.(three method)
Jan 09 Javascript
JS创建优美的页面滑动块效果 - Glider.js
Sep 27 Javascript
ExtJS Ext.MessageBox.alert()弹出对话框详解
Apr 02 Javascript
JS随机生成不重复数据的实例方法
Jul 17 Javascript
Seajs 简易文档 提供简单、极致的模块化开发体验
Apr 13 Javascript
jQuery禁用快捷键例如禁用F5刷新 禁用右键菜单等的简单实现
Aug 31 Javascript
jQuery ajax 当async为false时解决同步操作失败的问题
Nov 18 Javascript
Bootstrap列表组学习使用
Feb 09 Javascript
Node.js利用debug模块打印出调试日志的方法
Apr 25 Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
Feb 21 Javascript
angular2 组件之间通过service互相传递的实例
Sep 30 Javascript
vue-router 按需加载 component: () =&gt; import() 报错的解决
Sep 22 Javascript
原生js实现拖拽移动与缩放效果
Aug 24 #Javascript
JavaScript实现拖拽和缩放效果
Aug 24 #Javascript
Jquery 获取相同NAME 或者id删除行操作
Aug 24 #jQuery
JavaScript实现矩形块大小任意缩放
Aug 25 #Javascript
VSCode插件安装完成后的配置(常用配置)
Aug 24 #Javascript
JS实现按比例缩小图片宽高
Aug 24 #Javascript
JS实现简易贪吃蛇游戏
Aug 24 #Javascript
You might like
apache+php完美解决301重定向的两种方法
2011/06/08 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
2016/01/11 PHP
使用ucenter实现多站点同步登录的讲解
2019/03/21 PHP
在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题
2010/11/28 Javascript
分析Node.js connect ECONNREFUSED错误
2013/04/09 Javascript
Javascript实现简单二级下拉菜单实例
2014/06/15 Javascript
在父页面得到zTree已选中的节点的方法
2015/02/12 Javascript
js实现双击图片放大单击缩小的方法
2015/02/17 Javascript
jQuery简单倒计时效果完整示例
2016/09/20 Javascript
JavaScript Canvas绘制圆形时钟效果
2020/08/20 Javascript
JavaScript实现的冒泡排序法及统计相邻数交换次数示例
2017/04/26 Javascript
原生JS发送异步数据请求
2017/06/08 Javascript
Vue2.0如何发布项目实战
2017/07/27 Javascript
基于Vue框架vux组件库实现上拉刷新功能
2017/11/28 Javascript
微信小程序上传图片功能(附后端代码)
2020/06/19 Javascript
JS实现用特殊符号替换字符串的中间部分区域的实例代码
2018/07/24 Javascript
vue.js 子组件无法获取父组件store值的解决方式
2019/11/08 Javascript
python2.7删除文件夹和删除文件代码实例
2013/12/18 Python
Python 26进制计算实现方法
2015/05/28 Python
简介二分查找算法与相关的Python实现示例
2015/08/26 Python
Python基于pandas实现json格式转换成dataframe的方法
2018/06/22 Python
使用Python读取二进制文件的实例讲解
2018/07/09 Python
python基于SMTP协议发送邮件
2019/05/31 Python
java判断三位数的实例讲解
2019/06/10 Python
Python实现计算长方形面积(带参数函数demo)
2020/01/18 Python
python如何获得list或numpy数组中最大元素对应的索引
2020/11/16 Python
惠普新加坡官方商店:HP Singapore
2020/04/17 全球购物
Tomcat中怎么使用log4j输出所有的log
2016/07/07 面试题
机械化及自动化毕业生的自我评价分享
2013/11/06 职场文书
财务经理的岗位职责
2013/12/17 职场文书
公司年会抽奖活动主持词
2014/03/31 职场文书
中介业务员岗位职责
2014/04/09 职场文书
2014年仓库工作总结
2014/11/20 职场文书
材料员岗位职责范本
2015/04/11 职场文书
小马王观后感
2015/06/11 职场文书
js不常见操作运算符总结
2021/11/20 Javascript