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 相关文章推荐
JavaScript 学习点滴记录
Apr 24 Javascript
浅谈Javascript 数组与字典
Jan 29 Javascript
分享一则JavaScript滚动条插件源码
Mar 03 Javascript
javascript实现Table排序的方法
May 15 Javascript
JavaScript中使用指数方法Math.exp()的简介
Jun 15 Javascript
javascript实现tab切换特效
Nov 12 Javascript
easyui-combobox 实现简单的自动补全功能示例
Nov 08 Javascript
简单谈谈ES6的六个小特性
Nov 18 Javascript
jQuery 常见小例汇总
Dec 14 Javascript
canvas绘制七巧板
Feb 03 Javascript
BootStrap与Select2使用小结
Feb 17 Javascript
vue-cli脚手架引入图片的几种方法总结
Mar 13 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
基于ubuntu下nginx+php+mysql安装配置的具体操作步骤
2013/04/28 PHP
浅析memcache启动以及telnet命令详解
2013/06/28 PHP
PHP CURL CURLOPT参数说明(curl_setopt)
2013/09/30 PHP
查找php配置文件php.ini所在路径的二种方法
2014/05/26 PHP
阿里云PHP SMS短信服务验证码发送方法
2017/07/11 PHP
yii2中关于加密解密的那些事儿
2018/06/12 PHP
Laravel框架基于ajax实现二级联动功能示例
2019/01/17 PHP
JS 时间显示效果代码
2009/08/23 Javascript
JavaScript 获取用户客户端操作系统版本
2009/08/25 Javascript
jQuery 使用手册(五)
2009/09/23 Javascript
JavaScript中伪协议 javascript:使用探讨
2014/07/18 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
2015/06/26 Javascript
Angularjs中UI Router的使用方法
2016/05/14 Javascript
jQuery ajax 当async为false时解决同步操作失败的问题
2016/11/18 Javascript
AngularJS使用angular.bootstrap完成模块手动加载的方法分析
2017/01/19 Javascript
bootstrap+jQuery 实现下拉菜单中复选框全选和全不选效果
2017/06/12 jQuery
JavaScript之iterable_动力节点Java学院整理
2017/06/29 Javascript
详解升级react-router 4 踩坑指南
2017/08/14 Javascript
Vue 组件间的样式冲突污染
2017/08/31 Javascript
vue+socket.io+express+mongodb 实现简易多房间在线群聊示例
2017/10/21 Javascript
详解Vue一个案例引发「内容分发slot」的最全总结
2018/12/02 Javascript
Vue 组件参数校验与非props特性的方法
2019/02/12 Javascript
vue.js 子组件无法获取父组件store值的解决方式
2019/11/08 Javascript
Vue SSR 即时编译技术的实现
2020/05/06 Javascript
javascript实现时钟动画
2020/12/03 Javascript
Python中的两个内置模块介绍
2015/04/05 Python
深入理解Python装饰器
2016/07/27 Python
pandas Dataframe行列读取的实例
2018/06/08 Python
基于pycharm导入模块显示不存在的解决方法
2018/10/13 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
2019/04/25 Python
Django框架文件上传与自定义图片上传路径、上传文件名操作分析
2019/05/10 Python
uniapp+Html5端实现PC端适配
2020/07/15 HTML / CSS
碧欧泉法国官网:Biotherm法国
2019/10/23 全球购物
运动会入场词200字
2014/02/15 职场文书
员工保密协议范本,您一定得收藏!很有用!
2019/08/08 职场文书
铁头也玩根德 YachtBoy YB-230......
2022/04/05 无线电