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字符串累加Array不一定比字符串累加快(根据电脑配置)
May 14 Javascript
js 限制数字 js限制输入实现代码
Dec 04 Javascript
如何书写高质量jQuery代码(使用jquery性能问题)
Jun 30 Javascript
javascript实现单击和双击并存的方法
Dec 13 Javascript
JavaScript将Web页面内容导出到Word及Excel的方法
Feb 13 Javascript
手机端页面rem宽度自适应脚本
May 20 Javascript
解析利用javascript如何判断一个数为素数
Dec 08 Javascript
Vue单文件组件基础模板小结
Aug 10 Javascript
canvas+gif.js打造自己的数字雨头像的示例代码
Oct 26 Javascript
使用Bootstrap + Vue.js实现表格的动态展示、新增和删除功能
Nov 27 Javascript
详解Angular模板引用变量及其作用域
Nov 23 Javascript
封装 axios+promise通用请求函数操作
Aug 11 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
THINKPHP支持YAML配置文件的设置方法
2015/03/17 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
Ajax+Json 级联菜单实现代码
2009/10/27 Javascript
js数组转json并在后台对其解析具体实现
2013/11/20 Javascript
js this函数调用无需再次抓获id,name或标签名
2014/03/03 Javascript
js处理php输出时间戳对不上号的解决方法
2014/06/20 Javascript
IE浏览器IFrame对象内存不释放问题解决方法
2014/08/22 Javascript
javascript中Date()函数在各浏览器中的显示效果
2015/06/18 Javascript
Javascript BOM学习小结(六)
2015/11/26 Javascript
简单实现js间歇或无缝滚动效果
2016/06/29 Javascript
Angular使用ng-messages与PHP进行表单数据验证
2016/12/28 Javascript
老生常谈的跨域处理
2017/01/11 Javascript
jQuery使用EasyUi实现三级联动下拉框效果
2017/03/08 Javascript
详解vue.js2.0父组件点击触发子组件方法
2017/05/10 Javascript
js轮播图的插件化封装详解
2017/07/17 Javascript
node.js基于fs模块对系统文件及目录进行读写操作的方法详解
2017/11/10 Javascript
详解使用vue-admin-template的优化历程
2018/05/20 Javascript
Vue CLI3移动端适配(px2rem或postcss-plugin-px2rem)
2020/04/27 Javascript
js用正则表达式筛选年月日的实例方法
2021/01/04 Javascript
[47:31]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.12
2020/12/16 DOTA
Python中dictionary items()系列函数的用法实例
2014/08/21 Python
Python入门篇之面向对象
2014/10/20 Python
使用sklearn的cross_val_score进行交叉验证实例
2020/02/28 Python
django admin 根据choice字段选择的不同来显示不同的页面方式
2020/05/13 Python
详解pandas映射与数据转换
2021/01/22 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
2021/03/03 Python
Madewell美德威尔美国官网:美国休闲服饰品牌
2016/11/25 全球购物
美国学校用品、教室和教学商店:Discount School Supply
2018/04/04 全球购物
Java面试题:Java类的Main方法如果是Private将会怎么样
2016/08/18 面试题
保密普查工作实施方案
2014/02/25 职场文书
条幅标语大全
2014/06/20 职场文书
2016公司新年问候语
2015/11/11 职场文书
职场新人知识:如何制定一份合理的工作计划?
2019/09/11 职场文书
JavaScript使用canvas绘制坐标和线
2021/04/28 Javascript
总结一些Java常用的加密算法
2021/06/11 Java/Android
Alexa停服!网站排名将何去何从?目前还没有替代品。
2022/04/15 杂记