js实现简易计算器。计算器的布局不像表格那么公正对称,所以布局这块相对比较繁琐,但是也可以通过这来练习一下CSS。

一、实现功能

  1. 完成计算器的加减乘除的基本计算功能
  2. 实现输入框中的字符串拼接

二、实现思路

  1. 完成基本布局
  2. js实现运算功能

三、知识点

e.target||e.srcElement :获取触发事件的元素

四、具体代码实现

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>计算器</title>
<style type="text/css">
body {border: none;
}h1{text-align: center;
}button{cursor: pointer;width: 65px;height: 45px;background-color: hsla(182, 93%, 45%, 0);border-radius: 10px;box-shadow: 3px 3px 5px #ccc;outline: none;font-size: 25px;
}
input{font-size: 25px;border-radius: 10px;width: 200px;height: 40px;
}
#main{text-align:center;width:300px;height: 287px;margin: 0 auto;border:2px solid #ccc;background-image: url('../imges/4.jpg');
}
.num{margin: 10px;
}</style></head>
<body><h1>计算器</h1><div id="main" onclick="cal(event);"><div class="num" ><input type="text" value="0" readonly="readonly" id="screen" /><button>C</button></div><div class="num"><button>7</button><button>8</button><button>9</button><button>/</button></div><div class="num"><button>4</button><button>5</button><button>6</button><button>*</button></div><div class="num"><button>1</button><button>2</button><button>3</button><button>-</button></div><div class="num"><button>0</button><button>.</button><button>=</button><button>+</button></div></div>
</body>
<script type="text/javascript">
function cal(e) {//获取触发事件的元素var obj = e.target||e.srcElement;if(obj.nodeName != "BUTTON"){return;}var v = obj.innerHTML;var screen = document.getElementById("screen");if(v == "C"){screen.value = 0;}else if(v == "="){//获取到输入框的值var exp = screen.value;try{var result = eval("("+exp+")");//将计算结果赋值给输入框screen.value = result;}catch(e){console.log(e);screen.value = "error";}}else{if(screen.value == 0){screen.value = "";}screen.value += v;}}</script>
</html>

五、js部分详解

function cal(e) {//获取触发事件的元素var obj = e.target||e.srcElement;if(obj.nodeName != "BUTTON"){return;}var v = obj.innerHTML;var screen = document.getElementById("screen");if(v == "C"){screen.value = 0;}else if(v == "="){//获取到输入框的值var exp = screen.value;try{var result = eval("("+exp+")");//将计算结果赋值给输入框screen.value = result;}catch(e){console.log(e);screen.value = "error";}}else{if(screen.value == 0){screen.value = "";}screen.value += v;}}

利用e.target||e.srcElement,获取到触发事件的元素,||连接两个语法是为了解决不同浏览器的兼容性问题。

获取到触发事件元素的具体值之后,判断元素值是否等于“=”和“C”,这两个按钮是做区别于普通字符串拼接及计算的其他功能。

C做清屏处理:判断触发事件的按钮值是否为C,若为C,屏幕中只显示0;

=做计算处理:判断触发事件的按钮值是否为=,若为=,利用eval()方法计算屏幕上的公式;

其他触发事件的按钮直接做字符串拼接显示在屏幕上。

六、动图效果

今天的分享就到这里啦!欢迎指正!!!

JS实现简易网页计算器相关推荐

  1. 用vue.js实现的网页计算器源码

    大家好,今天给大家介绍一款,用vue.js实现的网页计算器源码(图1).送给大家哦,获取方式在本文末尾. 图1 可以切换为科学计算器(图2) 图2 部分代码: <!DOCTYPE html> ...

  2. 用HTML,CSS,JS制作一个网页计算器

    今天分享一个自己做的网页计算器,我个人感觉,虽然不精简,但是应该涉及到的东西都有了,所以分享出来,那我直接上代码了. <html> <head><meta charset ...

  3. HTML+CSS+JS实现简易汇率计算器(使用Fetch)

    还是github上找的小玩意跟着模仿着敲的. 首先看一下fetch,我也是学过ajax之后头一次见这玩意,然后就看着人家代码顺便上MDN看了一下. Fetch API 提供了一个 JavaScript ...

  4. HTML+CSS+js搭建简易网页(1)构建网页的骨架

    前言 本人正处于JavaScript学习中,并进行网页实战练习进行回顾HTML和CSS,接下来将推出搭建一个网页的必备部分的知识以及实战部分的一个系列文章.本篇文章将带领大家搭建一个网页的骨架. 企业 ...

  5. HTML、CSS与JS实现简易iPhone计算器

    效果如图 源码,通俗易懂 <!DOCTYPE html> <html><head><meta charset="UTF-8">< ...

  6. 设计一个简单的网页计算器

    设计一个简单的网页计算器 一.代码 <!DOCTYPE html> <html> <head><meta charset="UTF-8"& ...

  7. JavaScript初学入门(JS打印9*9乘法表,JS制作简易计算器)

    目录 网页的三部分组成: Java和JavaScript的关系: JavaScript的三种使用方式: Js的5种输出方式: Js的语法初始: js中值的类型: JS中的运算符: JS中的流程控制语句 ...

  8. 计算器html js php代码,JavaScript计算器网页版实现代码分享

    JavaScript网页计算器代码,该计算器是用DW写的! HTML篇 计算器 > C ← ± + 7 8 9 - 4 5 6 × 1 2 3 ÷ 0 ▪ = CSS篇 @charset &qu ...

  9. js计算器代码加减乘除_如何用jQuery做一个简易版计算器

    经过几个小时地敲敲打打,终于把这一部分的代码完成了. 这类问题的难点不在于布局,而是如何恰当地使用jQuery达成计算.交互的目的,比如储存.显示数值,数据类型的转换等. 在听老师讲课之前的我,思路是 ...

最新文章

  1. 乐源机器人没电提醒吗_我每天费尽心思,就为了逗一个机器人开心。。
  2. 使用PostBackUrl与Server.Transfer传递数据
  3. SparkWeb 编译
  4. 破坏计算机信息系统功能罪,破坏计算机信息系统罪
  5. 【VB.NET】基于Visual Studio编写VB.NET程序的常见问题的解答
  6. 【codevs3160】 LCS 【后缀自动机】
  7. 科普:SDN(软件定义网络)
  8. CSS3进度条 和 HTML5 Canvas画圆环
  9. lesmars实验室两个有关点云的专利
  10. xp电脑多少位怎么看_怎么看电脑是32位还是64位
  11. L5语言模型与数据集
  12. OpenCV4学习笔记(71)——散焦图像去模糊滤波
  13. 没有搭讪的人生是不完整的
  14. 手把手教你摆地摊之摆摊卖什么
  15. 计算机考研833大纲,考研833之计算机组成与系统结构提纲
  16. excel计算一年第几周
  17. 微信V3版本支付下单、查询支付订单状态、订单退款接入正式项目中并引入策略模式实操
  18. 【批量识别图片内容改名】如何批量识别图片中的文字并自动改名,如何根据图片上的文字内容重命名图片,批量的识别区域内容如何重命名改名,全部告诉你
  19. 视频流PS打包方式详解
  20. 某人写的openCV学习笔记_拔剑-浆糊的传说_新浪博客

热门文章

  1. 11 Halcon 点云平面交线计算
  2. UCOSII-软件定时器
  3. 新Android反编译教程
  4. Swustoj(594)Maximum Tape Utilization Ratio(最容易懂的题解)
  5. simulink Stateflow使用
  6. 华为与H3C交换机打开或关闭告警信息
  7. 世界太大,圈子太小,有你有我
  8. 开学季数码好物分享,哪些数码好物值得入手
  9. [微信小程序基础]Java Script从入门到放弃之首次接触Java Script
  10. 今日新加坡元兑泰铢汇率