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中如何得到中英文混合字符串的长度
Jan 17 Javascript
JS运动框架之分享侧边栏动画实例
Mar 03 Javascript
js中利用cookie实现记住密码功能
Aug 20 Javascript
jQuery利用sort对DOM元素进行排序操作
Nov 07 Javascript
ES6概念 Symbol toString()方法
Dec 25 Javascript
利用Js+Css实现折纸动态导航效果实例源码
Jan 25 Javascript
Angular4如何自定义首屏的加载动画详解
Jul 26 Javascript
JS中利用swiper实现3d翻转幻灯片实例代码
Aug 25 Javascript
解决vue路由后界面没有变化,但是链接有的问题
Sep 01 Javascript
Vue-Cli 3.0 中配置高德地图的两种方式
Jun 19 Javascript
vue实现购物车选择功能
Jan 10 Javascript
详解Vue的组件中data选项为什么必须是函数
Aug 17 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
PHILIPS L4X25T电路分析和打理
2021/03/02 无线电
php判断字符以及字符串的包含方法属性
2008/08/30 PHP
php利用header函数实现文件下载时直接提示保存
2009/11/12 PHP
PHP面向对象法则
2012/02/23 PHP
PHP读取xml方法介绍
2013/01/12 PHP
php表单敏感字符过滤类
2014/12/08 PHP
php插入含有特殊符号数据的处理方法
2016/11/24 PHP
下载文件个别浏览器文件名乱码解决办法
2013/03/19 Javascript
第二篇Bootstrap起步
2016/06/21 Javascript
ajax级联菜单实现方法实例分析
2016/11/28 Javascript
Angular+Bootstrap+Spring Boot实现分页功能实例代码
2017/07/21 Javascript
Vue实现typeahead组件功能(非常靠谱)
2017/08/26 Javascript
在vue项目中,将juery设置为全局变量的方法
2018/09/25 Javascript
详解node.js创建一个web服务器(Server)的详细步骤
2021/01/15 Javascript
Python网页解析利器BeautifulSoup安装使用介绍
2015/03/17 Python
Windows下Anaconda2安装NLTK教程
2018/09/19 Python
python同时遍历数组的索引和值的实例
2018/11/15 Python
python 正则表达式贪婪模式与非贪婪模式原理、用法实例分析
2019/10/14 Python
Python之——生成动态路由轨迹图的实例
2019/11/22 Python
Python列表操作方法详解
2020/02/09 Python
Python logging日志模块 配置文件方式
2020/07/12 Python
详解解决jupyter不能使用pytorch的问题
2021/02/18 Python
将SVG图引入到HTML页面的实现
2019/09/20 HTML / CSS
PHP如何防止SQL注入
2014/05/03 面试题
物理系毕业生自荐书范文
2014/02/22 职场文书
法制宣传月活动总结
2014/04/29 职场文书
项目建议书范文
2014/05/12 职场文书
教师专业自荐信
2014/05/31 职场文书
单位授权委托书范文
2014/08/02 职场文书
2014工程部年度工作总结
2014/12/17 职场文书
2014年小学语文工作总结
2014/12/20 职场文书
寒假安全保证书
2015/02/28 职场文书
上班迟到检讨书范文
2015/05/06 职场文书
幼儿园师德师风心得体会
2016/01/12 职场文书
《我是什么》教学反思
2016/02/16 职场文书
成功的商业计划书这样写才最靠谱
2019/07/12 职场文书