该计算器功能:
1.校验:小数点,重复计算,以及大量更符合用户体验的操作。
2.能够从键盘输入。

效果图:
html代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<link type="text/css" rel="stylesheet" href="css/style.css"></link>
</head>
<body>
<!--定义按键表格,每个按键对应一个事件触发-->
<div id="cal" class="cal">
<form action="./calcuServlet" method="post" id="toCalcu">
<div class="cont">
<input id="upText" class="textShow" type="text" name="process"
maxlength="10" readonly="readonly" />
<input id="downText" class="text" type="text" name="text" value="0"
maxlength="10" readonly="readonly" />
<input type="button" class="button" name="deleteAll" value="C" onclick="clearAllText()" />
<input type="button" class="button" name="opposite" value="+/-" onclick="oppositeOp()" />
<input type="button" class="button" name="delOne" value="←" onclick="deleteOneDigit()" />
<input type="button" class="button" name="Add" value="+" onclick="clickOperation('+')" />
<input type="button" class="button" name="seven" value="7" onclick="clickNum(7)" />
<input type="button" class="button" name="eight" value="8" onclick="clickNum(8)" />
<input type="button" class="button" name="nine" value="9" onclick="clickNum(9)" />
<input type="button" class="button" name="Reduce" value="-" onclick="clickOperation('-')" />
<input type="button" class="button" name="Four" value="4" onclick="clickNum(4)" />
<input type="button" class="button" name="Five" value="5" onclick="clickNum(5)" />
<input type="button" class="button" name="Sex" value="6" onclick="clickNum(6)" />
<input type="button" class="button" name="Multip" value="x" onclick="clickOperation('x')" />
<input type="button" class="button" name="One" value="1" onclick="clickNum(1)" />
<input type="button" class="button" name="Two" value="2" onclick="clickNum(2)" />
<input type="button" class="button" name="Three" value="3" onclick="clickNum(3)" />
<input type="button" class="button" name="Division" value="÷" onclick="clickOperation('/')" />
<input type="button" class="button" name="opposite" value="√" onclick="more()" />
<input type="button" class="button" name="Zero" value="0" onclick="clickNum(0)" />
<input type="button" class="button" name="Point" value="." onclick="clickNum('.')" />
<input type="button" class="button" name="Equal" value="=" onclick="calcu()" />
</div>
</form>
</div>
<div class="funcBtn">
<input type="button" id="show" class="button" value="show" onclick="show()" /> <input
type="button" id="hide" class="button" value="hide" onclick="hide()" />
</div>
<script type="text/javascript" src="./js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="./js/calcu.js"></script>
</body>
</html>
css代码:
@CHARSET "UTF-8";
.button {
width: 73px;
height: 50px;
margin-bottom: 5px;
border: 1px solid #ddd;
border-radius: 1px;
font-weight: bold;
color: #1e395b;
background: aqua;
font-size:20px;
border-radius: 3px;
}
.text {
width: 300px;
border: 1px solid #c2c2c2;
height: 50px;
border-radius: 5px;
font-size: 24px;
text-align: right;
background: #ffffff;
margin-top: 10px;
margin-bottom: 10px;
}
.textShow{
width: 300px;
border: 1px solid #c2c2c2;
height: 40px;
border-radius: 5px;
font-size: 18px;
text-align: right;
background: #ffffff;
margin-top: 10px;
margin-bottom: 10px;
}
.cal{
margin-left:200px;
border:2px solid #99ccff;
margin:100px auto;
position:relative;
width:330px;
height:420px;
border-radius: 10px;
}
.cont{
margin-left: 10px;
}
.funcBtn{
padding-left: 580px;
border-radius: 10px;
font-size: 20px;
position: fixed;
}
js代码:
/**
*
*/
var checkEqual = false;//Avoid repetition calcu
var opFlag = false; //Check repetition add operation
var upText = document.getElementById("upText");
var cal = document.getElementById("cal").style;
var downText = document.getElementById("downText");
function show() {
cal.display = "block";
}
function hide() {
cal.display = "none";
}
function clearAllText() {
upText.value = "";
downText.value = "0";
opFlag = false;
checkEqual = false;
}
function oppositeOp(){
downText.value = -downText.value;
}
function deleteOneDigit() {
downText.value = downText.value.substring(0, downText.value.length - 1);
if (downText.value == "" || (downText.value.charAt(0) == "-" && downText.value.charAt(1) == "")) {
downText.value = "0";
return downText.value;
}
return downText.value;
}
function clickNum(num) {
if(num == ".") {
checkIfAddPoint(num);
} else {
checkIfAddNum(num);
}
checkEqual = false;
}
function checkIfAddPoint(num) {
if((num=="." && downText.value == "0") || opFlag == true) {
downText.value="0.";
opFlag = false;
} else if(num == "." && downText.value.indexOf(".") > -1) {
downText.value;
} else {
downText.value += num;
}
}
function checkIfAddNum(num) {
if((num != "." && downText.value == "0" && downText.value[1] != ".")
|| opFlag == true
|| downText.value == "Infinity"
|| checkEqual == true) {
downText.value = num;
opFlag = false;
} else {
downText.value += num;
}
}
function clickOperation(op){
checkEqual = false;
downText.value = checkdownTextValid(downText.value);
downText.value = checkZero(upText.value,downText.value);
switch(op){
case "+":{
upText.value = appendupTextValue(upText.value,downText.value,"+");
opFlag = true;
}break;
case "-":{
upText.value = appendupTextValue(upText.value,downText.value,"-");
opFlag = true;
}break;
case "x":{
upText.value = appendupTextValue(upText.value,downText.value,"*");
opFlag = true;
}break;
case "/":{
upText.value = appendupTextValue(upText.value,downText.value,"/");
opFlag = true;
}break;
}
}
function checkdownTextValid(downText){
if(downText.charAt(downText.length-1) == "."){
return downText.substring(0,downText.length-1);
}
return downText;
}
function checkZero(upText,downText){
if(upText.charAt(upText.length-1) == "/" && downText == "0"){
return "Error";
}
return downText;
}
function appendupTextValue(oldvalue,newvalue,operation){
if(oldvalue == ""){
return oldvalue = newvalue+operation;
} else if(opFlag!=true){
return oldvaluee = oldvalue+newvalue+operation;
} else{
return oldvalue.substring(0, oldvalue.length-1)+operation;
}
}
function calcu() {
if(!checkEqual){
downText.value = eval(upText.value+downText.value);
upText.value = "";
checkEqual = true;
}
}
window.document.onkeydown = chooseKey;
function chooseKey(evt){
if(evt.keyCode == 13){alert("=");}
else if(evt.keyCode == 8){deleteOneDigit();}
else if(evt.keyCode == 27){clearAllText();}
else if(evt.keyCode == 48){clickNum('0');}
else if(evt.keyCode == 49){clickNum('1');}
else if(evt.keyCode == 50){clickNum('2');}
else if(evt.keyCode == 51){clickNum('3');}
else if(evt.keyCode == 52){clickNum('4');}
else if(evt.keyCode == 53){clickNum('5');}
else if(evt.keyCode == 54){clickNum('6');}
else if(evt.keyCode == 55){clickNum('7');}
else if(evt.keyCode == 56){clickNum('8');}
else if(evt.keyCode == 57){clickNum('9');}
else if(evt.keyCode == 96){clickNum('0');}
else if(evt.keyCode == 97){clickNum('1');}
else if(evt.keyCode == 98){clickNum('2');}
else if(evt.keyCode == 99){clickNum('3');}
else if(evt.keyCode == 100){clickNum('4');}
else if(evt.keyCode == 101){clickNum('5');}
else if(evt.keyCode == 102){clickNum('6');}
else if(evt.keyCode == 103){clickNum('7');}
else if(evt.keyCode == 104){clickNum('8');}
else if(evt.keyCode == 105){clickNum('9');}
else if(evt.keyCode == 110){clickNum('.');}
else if(evt.keyCode == 106){clickOperation('x');}
else if(evt.keyCode == 107){clickOperation('+');}
else if(evt.keyCode == 111){clickOperation('÷');}
else if(evt.keyCode == 109){clickOperation('-');}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# js
# 计算器
# javascript写的简单的计算器
# 内容很多
# 方法实用
# 推荐
# js实现简单计算器
# 简易js代码实现计算器操作
# html+js实现简单的计算器代码(加减乘除)
# 用JS写的简单的计算器实现代码
# js实现一个简易计算器
# js网页版计算器的简单实现
# 网页计算器 一个JS计算器
# 简易的JS计算器实现代码
# js版实现计算器功能
# 大家多多
# 更符合
# 键盘输入
# button
# deleteAll
# onclick
# readonly
# downText
# deleteOneDigit
# Add
# clickOperation
# clearAllText
# oppositeOp
# delOne
# maxlength
# calcuServlet
# method
# post
# cal
# form
相关文章:
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?
外贸公司网站制作哪家好,maersk船公司官网?
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
如何选择高效可靠的多用户建站源码资源?
如何快速打造个性化非模板自助建站?
桂林网站制作公司有哪些,桂林马拉松怎么报名?
制作网站公司那家好,网络公司是做什么的?
,在苏州找工作,上哪个网站比较好?
如何在腾讯云免费申请建站?
股票网站制作软件,网上股票怎么开户?
官网网站制作腾讯审核要多久,联想路由器newifi官网
建站之星展会模版如何一键下载生成?
焦点电影公司作品,电影焦点结局是什么?
制作网站的软件免费下载,免费制作app哪个平台好?
宿州网站制作公司兴策,安徽省低保查询网站?
如何用wdcp快速搭建高效网站?
c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗
Swift中switch语句区间和元组模式匹配
C++中引用和指针有什么区别?(代码说明)
公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?
制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?
如何快速查询域名建站关键信息?
再谈Python中的字符串与字符编码(推荐)
建站之星代理商如何保障技术支持与售后服务?
深圳网站制作的公司有哪些,dido官方网站?
如何在云主机快速搭建网站站点?
已有域名和空间,如何快速搭建网站?
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
如何设计高效校园网站?
在线制作视频的网站有哪些,电脑如何制作视频短片?
道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?
如何通过FTP服务器快速搭建网站?
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
如何在香港服务器上快速搭建免备案网站?
IOS倒计时设置UIButton标题title的抖动问题
网站制作大概多少钱一个,做一个平台网站大概多少钱?
建站之星安装提示数据库无法连接如何解决?
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
如何在景安云服务器上绑定域名并配置虚拟主机?
韩国服务器如何优化跨境访问实现高效连接?
Python如何创建带属性的XML节点
如何在IIS7上新建站点并设置安全权限?
广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?
免费制作小说封面的网站有哪些,怎么接网站批量的封面单?
简历在线制作网站免费,免费下载个人简历的网站是哪些?
建站10G流量真的够用吗?如何应对访问高峰?
建站之星2.7模板:企业网站建设与h5定制设计专题
C#如何在一个XML文件中查找并替换文本内容
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
*请认真填写需求信息,我们会在24小时内与您取得联系。