幽灵资源网 Design By www.bzswh.com
该计算器功能:
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="/UploadFiles/2021-04-02/jquery-1.7.2.min.js">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,计算器
幽灵资源网 Design By www.bzswh.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
幽灵资源网 Design By www.bzswh.com
暂无评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。