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 相关文章推荐
jquery ajax请求实例深入解析
Nov 26 Javascript
javascript eval(func())使用示例
Dec 05 Javascript
AngularJS基础知识
Dec 21 Javascript
javascript轻量级库createjs使用Easel实现拖拽效果
Feb 19 Javascript
JavaScript弹窗基础篇
Apr 27 Javascript
浅析JS操作DOM的一些常用方法
May 13 Javascript
JavaScript对Json的增删改属性详解
Jun 02 Javascript
vue.js实例对象+组件树的详细介绍
Oct 20 Javascript
说说node中的可读流和可写流的区别
Jun 01 Javascript
Vue 2.0 中依赖注入 provide/inject组合实战
Jun 20 Javascript
微信小程序如何实现精确的日期时间选择器
Jan 21 Javascript
VUE之图片Base64编码使用ElementUI组件上传
Apr 09 Vue.js
原生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
php中一个完整表单处理实现代码
2011/11/10 PHP
PHP callback函数使用方法和注意事项
2015/01/23 PHP
js 获取radio按钮值的实例
2013/08/17 Javascript
javascript中parentNode,childNodes,children的应用详解
2013/12/17 Javascript
JS将光标聚焦在文本最后的实现代码
2014/03/28 Javascript
JavaScript设计模式之工厂模式和构造器模式
2015/02/11 Javascript
javascript中类的定义方式详解(四种方式)
2015/12/22 Javascript
js+css实现回到顶部按钮(back to top)
2016/03/02 Javascript
jQuery插件制作的实例教程
2016/05/16 Javascript
jQuery中的each()详细介绍(推荐)
2016/05/25 Javascript
Javascript 创建类并动态添加属性及方法的简单实现
2016/10/20 Javascript
jQuery select自动选中功能实现方法分析
2016/11/28 Javascript
关于jQuery.ajax()的jsonp碰上post详解
2017/07/02 jQuery
js如何编写简单的ajax方法库
2017/08/02 Javascript
详解vue 单页应用(spa)前端路由实现原理
2018/04/04 Javascript
angular中如何绑定iframe中src的方法
2019/02/01 Javascript
解决Can't find variable: SockJS vue项目的问题
2020/09/22 Javascript
Openlayers实现图形绘制
2020/09/28 Javascript
Python装饰器的函数式编程详解
2015/02/27 Python
python使用pil库实现图片合成实例代码
2018/01/20 Python
python中的json总结
2018/10/11 Python
使用Python实现跳一跳自动跳跃功能
2019/07/10 Python
Python Django框架防御CSRF攻击的方法分析
2019/10/18 Python
越南电子产品购物网站:FPT Shop
2017/12/02 全球购物
成教自我鉴定
2013/10/27 职场文书
销售员个人求职的自我评价
2014/02/10 职场文书
《槐乡五月》教学反思
2014/04/25 职场文书
实习单位鉴定评语
2014/04/26 职场文书
幼儿园师德演讲稿
2014/05/06 职场文书
财务人员担保书
2014/05/13 职场文书
优秀大学生自荐信
2014/06/09 职场文书
党支部2014年度工作总结
2014/12/04 职场文书
大学生军训感言
2015/08/01 职场文书
《平行四边形的面积》教学反思
2016/02/16 职场文书
解决mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
2021/06/26 MySQL
win10滚动条自动往上跑怎么办?win10滚动条自动往上跑的解决方法
2022/08/05 数码科技