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 相关文章推荐
学习JS面向对象成果 借国庆发布个最新作品与大家交流
Oct 03 Javascript
js 数值项目的格式化函数代码
May 14 Javascript
jQuery实现页面滚动时动态加载内容的方法
Mar 20 Javascript
javascript实现信息增删改查的方法
Jul 25 Javascript
jQuery+CSS实现的网页二级下滑菜单效果
Aug 25 Javascript
原生javascript实现分享到朋友圈功能 支持ios和android
May 11 Javascript
老生常谈javascript的类型转换
Oct 12 Javascript
微信公众号  提示:Unauthorized API function 问题解决方法
Dec 05 Javascript
JS实现的点击表头排序功能示例
Mar 27 Javascript
Vue.js基础指令实例讲解(各种数据绑定、表单渲染大总结)
Jul 03 Javascript
20行JS代码实现粘贴板复制功能
Feb 06 Javascript
浅析JavaScript中的事件委托机制跟深浅拷贝
Jan 20 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
基于php伪静态的实现详细介绍
2013/04/28 PHP
多个Laravel项目如何共用migrations详解
2018/09/25 PHP
javascript+iframe 实现无刷新载入整页的代码
2010/03/17 Javascript
JQuery的一些小应用收集
2010/03/27 Javascript
jquery图片上下tab切换效果
2011/03/18 Javascript
JS特权方法定义作用以及与公有方法的区别
2013/03/18 Javascript
javascript制作的cookie封装及使用指南
2015/01/02 Javascript
最流行的Node.js精简型和全栈型开发框架介绍
2015/02/26 Javascript
深入探讨javascript中的数据类型
2015/03/04 Javascript
使用JavaScript 实现的人脸检测
2015/03/24 Javascript
JavaScript中用于生成随机数的Math.random()方法
2015/06/15 Javascript
举例讲解Node.js中的Writable对象
2015/07/29 Javascript
基于javascript实现根据身份证号码识别性别和年龄
2016/01/22 Javascript
基于JavaScript实现快速转换文本语言(繁体中文和简体中文)
2016/03/07 Javascript
设置jQueryUI DatePicker默认语言为中文
2016/06/04 Javascript
[Bootstrap-插件使用]Jcrop+fileinput组合实现头像上传功能实例代码
2016/12/20 Javascript
jQuery用户头像裁剪插件cropbox.js使用详解
2017/06/07 jQuery
vue配置多页面的实现方法
2018/05/22 Javascript
js中call()和apply()改变指针问题的讲解
2019/01/17 Javascript
vue源码中的检测方法的实现
2019/09/26 Javascript
Python 冒泡,选择,插入排序使用实例
2015/02/05 Python
Python中优化NumPy包使用性能的教程
2015/04/23 Python
梯度下降法介绍及利用Python实现的方法示例
2017/07/12 Python
详解Python的三种可变参数
2019/05/08 Python
python中提高pip install速度
2020/02/14 Python
Html5实现移动端、PC端 刮刮卡效果
2016/06/30 HTML / CSS
超级英雄、电影和电视、乐队和音乐T恤:Loud Clothing
2019/09/01 全球购物
毕业生求职自荐信怎么写
2014/01/08 职场文书
个人承诺书
2014/03/26 职场文书
教师岗位聘任书范文
2014/03/29 职场文书
租房协议书范文
2014/08/20 职场文书
科学发展观演讲稿
2014/09/11 职场文书
优秀护士事迹材料
2014/12/25 职场文书
公司承诺书格式范文
2015/04/28 职场文书
会计专业2019暑假实习报告
2019/06/21 职场文书
Mysql中mvcc各场景理解应用
2022/08/05 MySQL