网页版简易计算器

网页版简易计算器

所用知识:html、css、js

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<style type="text/css">
			input {
				width: 500px;
				height: 100px;
				font-size: 80px;
				background-color: aliceblue;
			}

			td {
				font-size: 40px;
				text-align: center;
			}

			td:hover {
				background-color: chartreuse;
				cursor: pointer;
			}
		</style>
	</head>
	<body>
		<center>
			<input type="text" id="show" value="0" disabled="disabled" />
		</center>

		<table border="1" cellspacing="0" cellpadding="" width="500px" height="400px" align="center">
			<tr>
				<td id="guiling">C</td>
				<td width="30%" id="tuige">退格</td>
				<td class="ysf">%</td>
				<td class="ysf">/</td>
			</tr>
			<tr>
				<td class="nums">7</td>
				<td class="nums">8</td>
				<td class="nums">9</td>
				<td class="ysf">*</td>
			</tr>
			<tr>
				<td class="nums">4</td>
				<td class="nums">5</td>
				<td class="nums">6</td>
				<td class="ysf">-</td>
			</tr>
			<tr>
				<td class="nums">1</td>
				<td class="nums">2</td>
				<td class="nums">3</td>
				<td class="ysf">+</td>
			</tr>
			<tr>
				<td colspan="2" class="nums">0</td>
				<td class="nums">.</td>
				<td id="denghao">=</td>

			</tr>
		</table>
	</body>
	<script type="text/javascript">
		var numValue1 = '';
		var numValue2 = '';
		var ysfValue = '';
		var flag = false;

		var show = document.getElementById("show");
		var tuige = document.getElementById("tuige");
		var guiling = document.getElementById("guiling");
		var denghao = document.getElementById("denghao");
		var nums = document.getElementsByClassName("nums");
		var ysfs = document.getElementsByClassName("ysf")
		for (var i = 0; i < nums.length; i++) {
			nums[i].onclick = function() {
				if (flag) {
					numValue1 = '';
					numValue2 = '';
					ysfValue = '';
					flag = false;
				}
				var num = this.innerText;
				if ((num == '.') && (numValue1.indexOf('.') == -1)) {
					numValue1 += num;
					show.value = numValue1;
				} else if ((num == '0') && (numValue1.indexOf('.') != -1)) {
					numValue1 = show.value;
					numValue1 += num;
					show.value = numValue1;
				} else if (num != '.') {
					numValue1 += num;
					show.value = numValue1 * 1;
				}
			}
		}
		for (var i = 0; i < ysfs.length; i++) {
			ysfs[i].onclick = function() {
				if(show.value.substring(1).indexOf("+")!=-1||show.value.substring(1).indexOf("-")!=-1||show.value.substring(1).indexOf("*")!=-1||show.value.substring(1).indexOf("/")!=-1||show.value.substring(1).indexOf("%")!=-1&&this.innerText=='%'){
					return;
				}
				if (flag) {
					if(this.innerText=='%'){
						numValue1=numValue2;
						numValue2='';
					}
					flag = false;
				}
				if(numValue1==''){
					numValue1='0';
				}
				if (numValue2 == '') {
					if(this.innerText=='%'){
						numValue1 = numValue1/100;
					}
					numValue2 = numValue1;
					numValue1 = '';
					ysfValue = this.innerText;
					show.value += ysfValue;
				}else{
					if(this.innerText=='%'){
						numValue1 = numValue1/100;
					}else{
						yunsuan();
						numValue1 = '';
						ysfValue = this.innerText;
					}
					show.value += this.innerText;
				}
			}
		}
		denghao.onclick = function() {
			if(numValue1!=''&&numValue2!=''||ysfValue=='%'){
				yunsuan();
				flag = true;
			}
		}

		function yunsuan() {
			var num1 = Number(numValue2);
			var num2 = Number(numValue1);
			var r = '';
			numValue1 = '0';
			switch (ysfValue) {
				case '+':
					r = num1 + num2;
					break;
				case '-':
					r = num1 - num2;
					break;
				case '*':
					r = num1 * num2;
					numValue1 = '1';
					break;
				case '/':
					if (num2 != 0) {
						r = num1 / num2;
					} else {
						numValue1 = '';
						numValue2 = '';
						ysfValue = '';
						alert("除数不能为0!");
						r = '0';
					}
					numValue1 = '1';
					break;
				case '%':
					r = num1;
					break;
			}
			numValue2 = Number(r).toFixed(9) * 1;
			show.value = numValue2;
		}
		guiling.onclick = function() {
			numValue1 = '';
			numValue2 = '';
			ysfValue = '';
			show.value = '0';
		}
		tuige.onclick = function() {
			if(!flag){
				if(show.value.substring(1).indexOf("+")!=-1||show.value.substring(1).indexOf("-")!=-1||show.value.substring(1).indexOf("*")!=-1||show.value.substring(1).indexOf("/")!=-1||show.value.substring(1).indexOf("%")!=-1){
					numValue1 = numValue2;
					numValue2 = '';
					ysfValue='';
					show.value=numValue1;
				}else{
					if (numValue1.length > 1) {
						numValue1 = numValue1.substring(0, numValue1.length - 1);
						show.value = numValue1;
					} else {
						numValue1 = '0';
						show.value = numValue1;
					}
				}
			}
		}
	</script>
</html>

效果图

在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值